moin moin…
ich hab da mal ein Problem mit dem Bezug in eine andere Datei hinein…
Ich meine zwar dass sowas vor kurzem erst hier war aber schon im Archiv und ich finds nimmer…
Also ich muss Dateien aus einer anderen Datei ziehen.
Im Stil:
=‚D:\work\sepp[abc_analyse.xls]Matrix‘!$A$12
Das klappt in dem Stil ja ganz fein…
Nur kann sich der Name des Tabellenblattes ändern - und das macht das ganze nun zu einem Problem…
Wenn ich mit
=ADRESSE() arbeite bekomme ich sobald ich auf eine fremde Datei referenzieren will eine #BEZUG! Fehlermeldung :-/
Kann mir irgendwer Tipps geben, wie ich das hinbekommen könnte?
ich könnte zwar per VBA auch direkte Verweise ersetzen, aber naja…
das ist irgendwie auch pfui - zumal ich ja auch nicht sicher weiss wie nun der genaue Pfad davor gelautet hat…
Ich bin über jegliche Hilfe dankbar 
Grüße
Munich
hi,
ich weiss zwar nicht 100%ig was du meinst aber eventuell
könnte es ja INDIREKT sein
cu Micha
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
stupid me - das meinte ich - funzt ned 
sorry - den Befehl meinte ich statt ADRESSE - macht ja keinen sinn, weil der liefert mir ja eben genau die Adresse einer Zelle und nicht deren Inhalt…
sorry - den Befehl meinte ich statt ADRESSE - macht ja keinen
sinn, weil der liefert mir ja eben genau die Adresse einer
Zelle und nicht deren Inhalt…
Hi Munich, dein Betreff, *hmmmh*
is die Frage nun noch offen oder gelöst?
Gruß
Reinhard
immernoch offen…
Hi Munich, dein Betreff, *hmmmh*
is die Frage nun noch offen oder gelöst?
*g* das wollte ich mit dem Betreff eigentlich deutlicher machen *lach*
Sobald ich den Dateibezug hinzufüge funktioniert es nicht mehr… 
Grüße
Michael
hi,
sorry hätte ich auch gleich dazu schreiben können:
INDIREKT geht nur, wenn die andere Datei OFFEN ist. INDIREKT macht keine Dateien auf, bzw. liest nicht aus geschlossenen Dateien.
cu Micha
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Also ich muss Dateien aus einer anderen Datei ziehen.
Im Stil:
=‚D:\work\sepp[abc_analyse.xls]Matrix‘!$A$12
Das klappt in dem Stil ja ganz fein…
Nur kann sich der Name des Tabellenblattes ändern - und das
macht das ganze nun zu einem Problem…
ich könnte zwar per VBA auch direkte Verweise ersetzen, aber
naja…
das ist irgendwie auch pfui - zumal ich ja auch nicht sicher
weiss wie nun der genaue Pfad davor gelautet hat…
Moin Munich,
kannst du bitte mal konkreter formulieren was du planst bzw ändern willst.
Wenn beide Dateien geöffnet sind pass t doch Excel den Link automatische an wenn du die Quelldatei woanders hin abspeicherst.
Wenn du das tust und die datei mit der Verknüpfung ist nicht offen so weiß die davon nix und wird beim nächsten Aktualisieren einen Fehleer bringen. das ist nur mit Vba lösbar. Vba überprüft dann alle Verknüpfungen und durchsucht die Festplatte nach der Quelldatei und je nach Ergebnis der Suche wird dann die Verknüpfung angepasst oder gemeldet dass es die Datei nicht gibt oder sie mehrfach vorkommt.
Wenn du in einer Zelle den Pfad, in einer anderen den Dateinamen hast, kannst du diese 2 Zellen abändern wie du willst, Excel findet dann über „Indirekt“ die Daten für die Formel.
Mein Problem ist nun, ich weiß nihct was bei dir vorliegt oder vielleicht willst du ja was ganz anderes erreichen…
Gruß aus dem sonnigen F
Reinhard
Du willst es immer ganz genau wissen, wie? 
Moin…
Moin Munich,
kannst du bitte mal konkreter formulieren was du planst bzw
ändern willst.
Ich brauch nur eine Lösung für mein Problem *g*
Und ich versuche dabei eigentlich immer das unwesentliche rauszulassen… 
Wenn beide Dateien geöffnet sind pass t doch Excel den Link
automatische an wenn du die Quelldatei woanders hin
abspeicherst.
Normal sind aber nicht beide geöffnet sondern nur eine davon.
Absolute Bezüge gehen aber nicht, weil meine Quelldateien den Sheetnamen ändern (Export aus anderem Programm, Du erinnerst Dich?)
Wenn ich die Quelldaten aber reinkopiere funktionieren die Bezüge innerhalb der Excel-Datei nicht mehr, was auch doof ist…
Also muss ich wohl auf jeden Fall mit Makro die Formeln anpassen…
Find ich zwar extrem unschön, aber was hilfts? :-/
Wenn du das tust und die datei mit der Verknüpfung ist nicht
offen so weiß die davon nix und wird beim nächsten
Aktualisieren einen Fehleer bringen. das ist nur mit Vba
lösbar. Vba überprüft dann alle Verknüpfungen und durchsucht
die Festplatte nach der Quelldatei und je nach Ergebnis der
Suche wird dann die Verknüpfung angepasst oder gemeldet dass
es die Datei nicht gibt oder sie mehrfach vorkommt.
Die Crux: Die Dateien liegen nicht auf der Festplatte sondern auf Netzlaufwerk - und wenn das durchsucht würde kann das den ganzen Tag dauern…
Wenn du in einer Zelle den Pfad, in einer anderen den
Dateinamen hast, kannst du diese 2 Zellen abändern wie du
willst, Excel findet dann über „Indirekt“ die Daten für die
Formel.
wie? Bei Dateiübergreifend funzt das offenbar nicht mehr…
Mein Problem ist nun, ich weiß nihct was bei dir vorliegt oder
vielleicht willst du ja was ganz anderes erreichen…
Gruß aus dem sonnigen F
Reinhard
Grüße
Munich
Wenn du in einer Zelle den Pfad, in einer anderen den
Dateinamen hast, kannst du diese 2 Zellen abändern wie du
willst, Excel findet dann über „Indirekt“ die Daten für die
Formel.
wie? Bei Dateiübergreifend funzt das offenbar nicht mehr…
Hi Munich,
in Tabelle1 ist c:\test\2000kw.xls geschlossen, in Tabelle2 geöffnet. Die Formelanpassung in A3 macht Excel automatisch.
Indirekt.Ext ist nachfolgend beschrieben, k.A. warum das nicht funktioniert. Es sollaus geschlossenen Dateien lesen können. Interesse an Indirekt.Ext?
Und wenn du du sowieso ein Makro benutzt, wieso brauchst du dann noch eine Excelfunktion? Das Makro kann doch die Quelldatei im Netzwerk suchen, den Zellenwert auslesen und Datei schliessen, kann doch alles im Hintergrund passieren.
Gruß
Reinhard
Tabellenblattname: Tabelle1
A B C D E
1 Pfad Datei Blatt Zelle 'c:\Test\[2000kw.xls]Tabelle1'!A7
2 c:\Test 2000kw.xls Tabelle1 A7
3 4
4 #BEZUG!
5 #WERT!
Benutzte Formeln:
A3: ='C:\Test\[2000kw.xls]Tabelle1'!$A$7
A4: =INDIREKT($E$1)
A5: =INDIRECT.EXT($E$1;WAHR;FALSCH)
E1: ="'"&A2&"\["&B2&"]"&C2&"'!"&D2
Tabellenblattname: Tabelle1
A B C D E
1 Pfad Datei Blatt Zelle 'c:\Test\[2000kw.xls]Tabelle1'!A7
2 c:\Test 2000kw.xls Tabelle1 A7
3 4
4 4
5 #WERT!
Benutzte Formeln:
A3: =[2000kw.xls]Tabelle1!$A$7
A4: =INDIREKT($E$1)
A5: =INDIRECT.EXT($E$1;WAHR;FALSCH)
E1: ="'"&A2&"\["&B2&"]"&C2&"'!"&D2
INDIRECT.EXT Function
Returns the value of a cell or range specified by its address (text string). Unlike the INDIRECT built-in function, INDIRECT.EXT can also return the value of a cell whose workbook is closed.
SYNTAX :
=INDIRECT.EXT(Reference,Volatile,A1-Style)
Reference (string) Full address of the cell in A1 style, including the name of the workbook and its path (example : 'C:\\Folder\\[Workbook.xls]Sheet1'!A4).
Volatile (boolean, optional) If TRUE or omitted, the function is volatile. If FALSE, it is not volatile (hit Ctrl-Alt-F9 to update the results.
A1-Style (boolean, optional) If TRUE or omitted, the address is interpreted as an A1-style reference, if FALSE it is interpreted as an R1C1-style reference.
RETURNED VALUE :
Contents of the referred cell. If this value can't be retrieved (for instance because the workbook or the sheet doesn't exist), it returns #VALUE!
REMARKS :
The Reference argument can be one of the following :
- Another range in the same workbook :
If the range is in the same workbook, the Reference argument should contain its address in the usual form, like "A1", "Sheet1!A1", "'Sheet 1'!A1" and so on.
- A range in another workbook (absolute path) :
The pattern of the Reference argument is : "'Drive:\Folder\[WorkbookName.xls]SheetName'!A1". Don't forget the quotes !
- A range in another workbook (relative path) :
If the workbook is in the same directory : "'[WorkbookName.xls]SheetName'!A1".
If it is in another directory, for instance the parent directory : "'..\[WorkbookName.xls]SheetName'!A1".
- A workbook-level name :
If RangeName is a workbook-level name (not sheet-level) : "'Path\WorkbookName.xls'!RangeName (don't put the name of the workbook in []).
If the Volatile argument is TRUE (or omitted), the returned values are automatically updated when the workbook is opened. Notice that the function takes about 0.005 second to get the value of a cell in a closed workbook (which is relatively slow for a worksheet function), therefore it should'nt be used in too many cells.
If Volatile = FALSE, the returned values are not automatically updated. If you want to update them, press Ctrl+Alt+F9.
The calculations speed is significantly improved if you use INDIRECT.EXT in an array formula instead of separate non-array formulae.
EXAMPLES :
=INDIRECT.EXT("'C:\[My workbook.xls]Table 5'!E34,FALSE) returns the value of the cell "Table 5!E34" of the workbook "C:\My workbook.xls". This value is not automatically updated, unless you change the argument or press Ctrl-Alt-F9.
=INDIRECT.EXT("'C:\My Documents\[Workbook5.xls]Sheet1'!A9") returns the value of the cell Sheet1!A9 of the workbook "My Documents\Workbook5.xls". This value is automatically updated (volatile function).
=INDIRECT.EXT("'..\Temp\Test\[MyWorkbook.xls]Sheet1'!A1") returns the value of cell Sheet1!A1 in the workbook "MyWorkbook.xls" located in the parent directory.
{=INDIRECT.EXT("'[Book2.xls]Sheet1'!A1:A10")} returns the values (array) of the range Sheet1!A1:A10 in the workbook "Book2.xls" located in the same directory
Die Crux: Die Dateien liegen nicht auf der Festplatte sondern
auf Netzlaufwerk - und wenn das durchsucht würde kann das den
ganzen Tag dauern…
Hi Munich,
wie lange dauert es denn wirklich? Das gute alte Dos ist so langsam auch nicht. In der Zeile
Print #1, „dir c:</u> %1 /s/b/-p > c:\test2\Suchen.txt“
ist das Markierte die Stelle wo du C: an dein Netzwerk anpassen müßtest.
Option Explicit
Sub Testen()
Dim Starten, Datei As String
Starten=Timer
Datei = "2000kw.xls"
Msgbox timer - Starten & " Sekunden"
MsgBox "Pfad zu Datei: " & Chr(13) & Chr(13) & Datei & Chr(13) & Chr(13) & "ist " & tt(Datei)
End Sub
Function tt(Dateiname As String)
Dim S, Zeile As String
If Dir("c:\test2/nul") = "" Then MkDir "c:\test2"
If Dir("c:\test2\Suchen.bat") = "" Then
Close
Open "c:\test2\Suchen.bat" For Output As #1
Print #1, "echo %1"
Print #1, "dir c:\%1 /s/b/-p \> c:\test2\Suchen.txt"
Close #1
End If
S = Shell("c:\test2\Suchen.bat " & Dateiname)
Open "c:\test2\Suchen.txt" For Input As #1
Input #1, Zeile
Close
tt = Left(Zeile, InStrRev(Zeile, "\") - 1)
End Function
Hi Reinhard,
in Tabelle1 ist c:\test\2000kw.xls geschlossen, in Tabelle2
geöffnet. Die Formelanpassung in A3 macht Excel automatisch.
Indirekt.Ext ist nachfolgend beschrieben, k.A. warum das nicht
funktioniert. Es sollaus geschlossenen Dateien lesen können.
Interesse an Indirekt.Ext?
warum? Es scheint ja nicht zu funktionieren…
Und INDIREKT.EXT() funktioniert in nem Deutschen Excel auch nicht…
oder ist das eine VBA-Funktion?
Davon abgesehen liefert es ja in beiden Fällen Fehlermeldungen…?
Und wenn du du sowieso ein Makro benutzt, wieso brauchst du
dann noch eine Excelfunktion? Das Makro kann doch die
Quelldatei im Netzwerk suchen, den Zellenwert auslesen und
Datei schliessen, kann doch alles im Hintergrund passieren.
ähm ja…
theoretisch schon - nur sind es 5 Dateien mit unbekannt vielen Zeilen…
Aber zu erwarten sind schon mal bis zu 10.000 Zeilen pro Datei - zumindest später mal…
Dazu die Inhalte aus verschiedenen Spalten…
Du siehst das Problem?
Ich denke dass ich einfach die Formeln mit VBA anpassen werde…
Grüße
Munich
Hi Munich,
wie lange dauert es denn wirklich? Das gute alte Dos ist so
langsam auch nicht. In der Zeile
wenn ich die Windows Suche verwende abhängig vom Suchstring pro Laufwerk schon mal gut 2 Stunden - und es ist eben nicht nur ein Netzlaufwerk…
davon abgesehen übernehm ich keine Garantie, dass nicht irgenwo dann wieder Backups liegen und blabla…
Ich lass die Verweise denk ich einfach in einer Zelle in Excel stehen…
Wenn sich was ändert sollten die halt schlau genug sein um das zu adaptieren *g*
Hi Munich,
wie lange dauert es denn wirklich? Das gute alte Dos ist so
langsam auch nicht. In der Zeile
wenn ich die Windows Suche verwende abhängig vom Suchstring
pro Laufwerk schon mal gut 2 Stunden - und es ist eben nicht
nur ein Netzlaufwerk…
Kannst du mal meinen Suchcode starten, würde mich schon interessieren wie lange der braucht im Vergleich zu Windows-Suche.
Ich lass die Verweise denk ich einfach in einer Zelle in Excel
stehen…
Wenn sich was ändert sollten die halt schlau genug sein um das
zu adaptieren *g*
Beim Öffnen die vorhanden Verweise überprüfen ob der Pfad noch stimmt müßte ja fix gehen bei 5-10 Quelldateien und dann ggfs eine Msgbox mit einem Hinweis. Aber bei deinem Netzlaufwerk bin ich mir unsicher ob da nicht jede der 10000*100 Zellen eine eigene Quelldatei hat wo sie ihren Verweis darauf richtet
)
Gruß
Reinhard
sorry aber eine fehlermeldung nach der anderen…
das kann ich mal grob vergessen das mal eben zu testen…
dazu müsste ich das besser verstehen…
Okay, danke für den Versuch o.w.T