Hallo zusammen,
ich bin auf ein Problem gestoßen wo meine Google-Recherche erfolglos war und hoffe, ihr könnt mit hier weiterhelfen.
Ich hab eine Datei, in der ich über eine Funktion Werte aus verschiedenen anderen Datei ziehen möchte. Pro Zeile gibt es eine eigene Datei, dessen Dateiname in einer Zelle der Zeile hinterlegt ist. Bei der Funktion möchte ich nur den Dateinamen und die Zelle angeben. Hier ein Beispiel
Beispiel Screenshot
Normal hat man ja, wenn man so etwas statisch macht, folgenden Verweis:
'C:\Mein Beispiel\Source\[data1.xlsx]Portfolio'!G6
Hier bin ich aber nicht in der Lage, den Dateinamen variabel zu machen. (Oder doch? dann müsst ihr gar nicht weiterlesen, denn dass würde mir schon reichen)
Bei der Suche nach einen passenden Ansatz bin ich auf folgendes gestoßen:
http://www.excel-inside.de/vba-loesungen/datei/947-daten-aus-geschlossener-arbeitsmappe-auslesen
Das Beispiel konnte ich erfolgreich anwenden, aber nur als Marko. Meine Versuche es in eine Funktion umzuwandeln bzw. dieses Sub in eine Function einzubauen haben nicht geklappt. Hier mein aktueller Stand des Codes:
Function SourceData(Source As String, Zelle As String)
SourceData = GetValue(Source, Zelle)
End Function
Private Function GetValue(Source As String, Zelle As String)
Dim pfad As String
Dim blatt As String
'Dim Source As String
Dim datei As String
'Dim Zelle As String
Dim arg As String
pfad = "C:\Mein Beispiel\Source\"
blatt = "Portfolio"
'Source = "data1"
datei = Source & ".xlsx"
'Zelle = "G6"
arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Zelle
' MsgBox (arg)
'Sicherstellen, dass das datei vorhanden ist
If Right(pfad, 1) <> "\" Then pfad = pfad & "\"
If Dir(pfad & datei) = "" Then
GetValue = "data Not Found"
Exit Function
End If
GetValue = ExecuteExcel4Macro(arg)
End Function
Einen "Data not Found" kriegt ich raus, aber wenn er dieDatei findet kommt ein #Wert! raus. Was mach ich falsch?
Vielen Dank für eure Hilfe !
|