Supportnet / Forum / Tabellenkalkulation
Variable Bezüge in Formeln
Frage
Hallo mal wieder!!
Ich hab ein etwas verzwickteres Problem:
Ich muß mir ein Master-File erstellen, in welchem ich mir die Daten aus anderen Files (eigentlich immer nur eins pro Durchlauf) holen muss!
Dies ist in erster Linie kein Problem, aber jetzt kommt es:
Die Formeln, welche ich nutze um mir die Daten aus den anderen Files zu holen müssen "Variabel" sein. Damit meine ich, dass ich nicht immer die Formeln per Hand ändern muss, sondern nur in eine Zeile den Dateinamen eingebe und Excel mir die Formeln mit dieser Datei anpasst!!
Ich weiß etwas kompliziert, aber vielleicht hilft das hier noch etwas!
So, sagen wir mal in A1 steht der Dateiname und die Formel in B1 soll sich die Daten aus dem File in A1 holen:
A1 | B1
xxx.xls | ='[XXX.xls]Tabelle1'!B1
WEnn ich nun aber die Daten nicht aus XXX.xls haben will, sondern aus XYZ.xls, dann will ich das nur in A1 schreiben und die Formeln sollen automatisch angepasst werden!
Hoffe ihr wisst Rat!
Michael
Antwort 1 von want2cu_extern
Hallo Michael,
ich bastele schon, habe aber noch keine Lösung.
Momentan geht es mit
="["&A1&"]Tabelle1!$A$1"
einen Textstring zu erzeigen, der aus Zelle A1 den Dateinamen holt. Ich habe es aber noch nicht geschafft, dass EXCEl das jetzt auch als Formel akzeptiert.
Ich schicke dir mal ein paar Dateien, in denen vielelicht noch Lösungsansansätze stecken. Insbesondere die Datei 10_namen_teil_links_rechts.xls
Ich bleibe aber am Ball. ansonsten würde mir als Praktikelösung einfalle, das ganze einfach per ERSETZEN zu lösen.
Damit kannst du sogar in Formeln die Dateinamen ersetzen. Wie wäre es mit so einer Lösung?
CU
want2cu
ich bastele schon, habe aber noch keine Lösung.
Momentan geht es mit
="["&A1&"]Tabelle1!$A$1"
einen Textstring zu erzeigen, der aus Zelle A1 den Dateinamen holt. Ich habe es aber noch nicht geschafft, dass EXCEl das jetzt auch als Formel akzeptiert.
Ich schicke dir mal ein paar Dateien, in denen vielelicht noch Lösungsansansätze stecken. Insbesondere die Datei 10_namen_teil_links_rechts.xls
Ich bleibe aber am Ball. ansonsten würde mir als Praktikelösung einfalle, das ganze einfach per ERSETZEN zu lösen.
Damit kannst du sogar in Formeln die Dateinamen ersetzen. Wie wäre es mit so einer Lösung?
CU
want2cu
Antwort 2 von Milka84
Das habe ich ausch schon überlegt, aber ich wollte das so gut wie möglich automatisieren, weil die Files nicht für mich sind, sondern für andere Mitarbeiter und die eigentlich nur noch auf den Knopf drücken wollen/sollen, damit da auch wirklich die richtigen Ergebnisse rauskommen!
Werde mir dann mal deine Sachen anschauen und vielleicht komme ich damit ja schon wieter!
Ansonsten kannst du dir ja mal weiter den Kopf zerbrechen ;)
Werde mir dann mal deine Sachen anschauen und vielleicht komme ich damit ja schon wieter!
Ansonsten kannst du dir ja mal weiter den Kopf zerbrechen ;)
Antwort 3 von want2cu_extern
Hallo Michael,
ERSETZEN oder WECHSELN kämen vielleicht auch noch in Betracht. Der reine Text läßt sich so generieren, aber es hapert bei mir noch an der Erkennung als Formel.
Bis gleich ;-)
wantcu
P.S:Die Dateien sind schon an dich rausgegangen
ERSETZEN oder WECHSELN kämen vielleicht auch noch in Betracht. Der reine Text läßt sich so generieren, aber es hapert bei mir noch an der Erkennung als Formel.
Bis gleich ;-)
wantcu
P.S:Die Dateien sind schon an dich rausgegangen
Antwort 4 von want2cu_extern
Hallo Michael,
wie wäre es, wenn du die Sache mit ERSETZEN mit einem kleinen Makro automatisierst? Wenn du im Rahmen des Makros den entsprechenden Bereich mit den Formelm komplett markierst, geht das Ersetzen auf einen Schlag.
Und der KLick auf eine makrogesteuerte Schaltfläche ist schon zumutbar.
GGF. kannst du die Sache mit dem Makro noch dahingehend automatisieren, dass dieses Makro automatisch nach erfolgter EIngabe in die Zelle, wo der Tabellenname stehen soll, gestartet wird.
CU
want2cu
wie wäre es, wenn du die Sache mit ERSETZEN mit einem kleinen Makro automatisierst? Wenn du im Rahmen des Makros den entsprechenden Bereich mit den Formelm komplett markierst, geht das Ersetzen auf einen Schlag.
Und der KLick auf eine makrogesteuerte Schaltfläche ist schon zumutbar.
GGF. kannst du die Sache mit dem Makro noch dahingehend automatisieren, dass dieses Makro automatisch nach erfolgter EIngabe in die Zelle, wo der Tabellenname stehen soll, gestartet wird.
CU
want2cu
Antwort 5 von Milka84
also wenn du das Ersetzen aus dem Bearbeiten Menü meinst, dann kann ich dir sagen, dass ich das schon probiert habe.
Ich hab den Makrorekorder angeschmissen und dann den Dateinamen ersetzt, aber sobald ich dann nen anderen Dateinamen haben wollte klappte es nicht mehr, weil im VBA-Editor dann der Dateiname, den ich als letztes ersetzt habe fest drin stand. Und ich weiß nicht genau, wie ich bei einem Makro "sage", dass er immer ersetzen durch den "Wert" (Dateinamen) in A1 machen soll!
Ich hab den Makrorekorder angeschmissen und dann den Dateinamen ersetzt, aber sobald ich dann nen anderen Dateinamen haben wollte klappte es nicht mehr, weil im VBA-Editor dann der Dateiname, den ich als letztes ersetzt habe fest drin stand. Und ich weiß nicht genau, wie ich bei einem Makro "sage", dass er immer ersetzen durch den "Wert" (Dateinamen) in A1 machen soll!
Antwort 6 von want2cu_extern
Hallo Michael,
ich habe es gerade selbst nochmal probiert. Mit ERSETZEN aus dem Menu BEARBEITEN klappt es bei mir ohne Probleme, wenn ich vorher den Bereich markiere, der die zu ändernden Formeln mit den zu ändernden Tabellennamen enthält.
Wenn du das per Makro machst, solltest du natürlich keinen "festen Dateinamen" angeben, sondern dabei einen Bezug auf eine EIngabezelle in deiner Tabelle setzen, dort wo der jeweils gewünschte Tabellenname vom User eingetragen werden soll.
Bei mir klappt es jedennfalls so. Gib doch bitte ein Feedback, wo es bei dir nach nicht klappt.
CU
want2cu
ich habe es gerade selbst nochmal probiert. Mit ERSETZEN aus dem Menu BEARBEITEN klappt es bei mir ohne Probleme, wenn ich vorher den Bereich markiere, der die zu ändernden Formeln mit den zu ändernden Tabellennamen enthält.
Wenn du das per Makro machst, solltest du natürlich keinen "festen Dateinamen" angeben, sondern dabei einen Bezug auf eine EIngabezelle in deiner Tabelle setzen, dort wo der jeweils gewünschte Tabellenname vom User eingetragen werden soll.
Bei mir klappt es jedennfalls so. Gib doch bitte ein Feedback, wo es bei dir nach nicht klappt.
CU
want2cu
Antwort 7 von Milka84
hmmm, kannst du mir das Makro vielleicht mal zuschicken und ich probiere das dann hier mal aus?!
Wäre echt nett!
Danke
Michael
Wäre echt nett!
Danke
Michael
Antwort 8 von Aliba
Hi Milka,
sind die Dateien aus denen die Daten geholt werden sollen geöffnet?
CU Aliba
sind die Dateien aus denen die Daten geholt werden sollen geöffnet?
CU Aliba
Antwort 9 von want2cu_extern
Hallo Michael,
ich muss mich korrigieren:
Bei mir klappt das Ersetzen nur "händisch", mittels MAKRO bleiben dann die Dateinamen bestehen, ein Verweis auf eine Zelle hat nicht geklappt.
Da ich von VBA zuwenig Ahnung habe, scheitere ich an dieser Stelle :-(((
Ich denke aber, dass es mit VBA möglich sein muss, das zu lösen.
CU
want2cu
ich muss mich korrigieren:
Bei mir klappt das Ersetzen nur "händisch", mittels MAKRO bleiben dann die Dateinamen bestehen, ein Verweis auf eine Zelle hat nicht geklappt.
Da ich von VBA zuwenig Ahnung habe, scheitere ich an dieser Stelle :-(((
Ich denke aber, dass es mit VBA möglich sein muss, das zu lösen.
CU
want2cu
Antwort 10 von Guenter
Hallo,
hier ein Makro, was über eine Inputbox einen Filenamen abfragt und den Wert aus Zelle B1 in die vorhandene Excel Datei in A1 schreibt.
Gegebenenfalls müssen die Stellen von Ein- und Ausgabe noch angepasst werden.
Die Eingabe des Makros: Alt F11; Einfügen Modul und dann Makro hineinkopieren.
Bei Eingabe von Filename ggf. mit Verzeichnis.
Gruß
Günter
hier ein Makro, was über eine Inputbox einen Filenamen abfragt und den Wert aus Zelle B1 in die vorhandene Excel Datei in A1 schreibt.
Gegebenenfalls müssen die Stellen von Ein- und Ausgabe noch angepasst werden.
Die Eingabe des Makros: Alt F11; Einfügen Modul und dann Makro hineinkopieren.
Sub Test()
Dim FileN$
Dim ValB1
FileN = InputBox("Geben Sie den richtigen Filenamen ein:")
Workbooks.Open FileN
Workbooks(FileN).Activate
Sheets("Tabelle1").Select
ValB1 = Range("B1").Value
Workbooks(FileN).Close
Range("A1").FormulaR1C1 = ValB1
End Sub
Bei Eingabe von Filename ggf. mit Verzeichnis.
Gruß
Günter
Antwort 11 von feli
Hallo Micha, wenn ich deine Frage richtig verstanden habe, und du im wesentlichen mit excel arbeitest, dann wäre eine Lösung, die files oder ggf. nur das Feld mit der Ersetzen-Funktion anzupassen.
Feli
Feli
Antwort 12 von want2cu
@feli,
wenn du nicht nur die letzte Antwort gelesen hast, wirst du gemerkt haben, dass die Sache mit ERSETZEN schon bekannt war und nur händisch klappt, d.h. nicht mit einem Makro ;-)
CU
want2cu
wenn du nicht nur die letzte Antwort gelesen hast, wirst du gemerkt haben, dass die Sache mit ERSETZEN schon bekannt war und nur händisch klappt, d.h. nicht mit einem Makro ;-)
CU
want2cu