Excel - Quelldatei muss geöffnet sein für Aktualisierungen?
Hey Leute,
und zwar habe ich folgendes Problem: Ich habe mit der folgenden Funktion =WENNFEHLER(INDEX('[Rechnungen_NEU]Rechnungen'!C:C;Tabelle1!$B5+8);"")
eine Verknüpfung zwischen zwei Dateien hergestellt. Daneben sind zwar noch paar andere Funktionen, ist aber denke ich egal.
Das Problem an der ganzen Sache ist, dass die Quelldatei immer geöffnet sein muss, damit die neue Tabelle aktualisiert wird. Wenn dies nicht der Fall ist, werden nur die Werte in der ersten Zeile ausgeworfen von Excel. Alles darunter ist leer.
Ich gehe stark davon aus, dass es an der oben genannten Funktion liegt. Ändere ich am Ende das "" zu "a", so wird mir ab der zweiten Zeile überall ein a in der Tabelle angezeigt. Also ist da irgendwo ein Fehler.
Was muss ich ändern, damit mir die neue Tabelle auch bei geschlossener Quelldatei die ganzen Daten aktualisiert und anzeigt? Zudem wird mir bei geschlossener Quelldatei dann der gesamte Dateipfad der Haupttabelle in der Funktion angezeigt, statt [Rechnungen_NEU]Rechnungen'!. Ist das normal?
3 Antworten
Ich kann dir zwar keine positive Antwort geben, aber eine, die vielleicht deine Recherchen abkürzt.
In der Vergangenheit war es zumindest immer so, dass eine zweite Excelmappe geöffnet sein muss, damit eine andere darauf zugreifen kann.
Als Workaround könnte man die Mappe mittels VBA beim Öffnen der ersten öffnen und beim Schließen der ersten Mappe wieder schließen. Das ist aber alles nicht so das Gelbe vom Ei.
Den Grund kann ich dir nicht nennen, weshalb das nicht geht.
Hmm, komisch, ich habe es gerade mit Excel 2016 ausprobiert und es funktioniert, ohne dass die Quelle offen ist. Vermutlich liegt sie noch im Cache. Sonst funktioniert das seit neuestem.
Meine Formel:
INDEX('E:\Tests\[VerweisQuelle.xlsx]Quelle'!$B$1:$B$100;VERGLEICH(B1;'E:\Tests\[VerweisQuelle.xlsx]Quelle'!$A$1:$A$100;0))
Ansonsten schreibe ich dir vorsichtshalber noch, wie das Makro aussehen könnte:
- Speichere die Zielmappe als xlsm-Datei
- Mit [Alt]+F11 öffnest du den VBA Editor.
- Doppelklick im Projektexplorer auf "Diese Arbeitsmappe"
- Füge folgenden Code ein und speichere die Arbeitsmappe
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim wb As Workbook
For Each wb In Workbooks
If wb.Name = "VerweisQuelle.xlsx" Then _
wb.Close False
Next
End Sub
Private Sub Workbook_Open()
Excel.Workbooks.Open "E:\Scripting\Tests\gutefrage\VerweisQuelle.xlsx", True
Me.Activate
End Sub
Hallo,
wie bereits "Suboptimierer" erwähnt, müssen beide Dateien geöffnet sein.
Nachteil einer Verknüpfung mit anderen Dateien, ist die Unüberschaubarkeit wenn mehrere Leute damit Arbeiten.
Falls die 2. Datei umbenannt wird, ist es vorbei mit der Verknüpfung!
Warum verwendest Du nicht eine Datei mit mehreren Blättern?
Früher konnte man eine Arbeitsmappe, aus mehreren Dateien, in einer Datei zusammengefasst, erstellen (EXCEL 5.0 oder sogar 4.0, bin mir nicht sicher). Eine "Arbeitsmappe" war eine "Arbeitsmappe" bestehend aus 2, oder mehreren Dateien.
Heute heißt es beim erstellen der EXCEL-Datei, "Arbeitsmappe erstellen". Damals war das noch getrennt.
Sicherlich bieten die neuen EXCEL-Anwendungen weitaus mehr Möglichkeiten, aber Schade, dass einige "Gute Sachen" Verloren gingen.
Gruß Tron
Wenn Du die Daten über eine Funktion abfragst, kannst Du das nicht ändern. Dann müsstest Du insgesamt die Datenabfrage ändern, das hängt aber von der verwendeten Excel-Version ab.
Ich kann Dir nur empfehlen die Daten via "Abfrage" zu holen, dann funktioniert die Aktualisierung auch wenn die Quelldatei geschlossen ist. Dazu wären aber mehr Details Deiner Datei und Excelversion notwendig
Via Abfrage wäre ungünstig für mich. Heute ist mein letzter Arbeitstag und bin dann erstmal eine lange Zeit weg, aber die Tabelle muss für meine Kollegen fertiggestellt werden, damit sie damit weiterarbeiten können. Grundsätzlich klappt alles, bloß ist es eben nervig, dass ich immer zwei Dateien öffnen muss, damit es wie gewünscht läuft. Es geht darum, dass ich eine einzige Projektnummer angebe in einer Zelle und Excel mir alle Daten, die unter dieser Projektnummer zu finden sind, in der neuen Tabelle auflistet. Und selbst wenn neue Einträge zu diesem Projekt hinzugefügt werden, wird das automatisch in die Tabelle übernommen. Wie gesagt, alles läuft eigentlich wie gewünscht.
Mit VBA kenne ich mich leider überhaupt nicht aus :/ Bin gerade erst neu in Excel eingestiegen :D Aber grundsätzlich wäre es auch ok, dass die Mappe beim Öffnen der neuen Tabelle mitgeöffnet wird und beim Schließen genauso. Bloß kenne ich mich wie gesagt nicht aus mit VBA ^^