Ich will aus verschiedenen Dateien (die ich nicht öffne), Werte in eine Datei übernehmen.
In Spalte Spalte B steht ab Zeile 6 der jeweilige Pfad (es sind nicht alle Dateien im gleichen Verzeichnis gespeichert) und in Spalte C in der gleichen Zeile der Dateiname (die Anzahl Pfade mit Dateien ist variabel).
Die Zellbezüge in den geschlossenen Dateien, aus denen ich die Werte entnehmen will, stehen in Zeile 4, ab Spalte E (z.B. F3, G3, P3 ... - Anzahl Einträge in Zeile 4 ist variabel).
Diese Werte möchte ich jeweils auf der entsprechenden Zeile (beginnend mit Zeile 6) in der jeweiligen Spalte, wo die Zellbezüge gemäss Zeile 4 stehen, einfügen.
Mit meinem Makro (aus verschiedenen Einträgen zusammengesucht) habe ich es geschafft, den ersten Wert aus einer geschlossenen Datei abzuholen. Nun muss ich eine Schleiffe integrieren, die alle Einträge abarbeitet. Da bin ich etwas hilflos. Kann mir jemand weiterhelfen?
Besten Dank, Peter
Mein Makro sieht wie folgt aus:
Sub DatenEintragen()
Dim p as String 'Pfad
Dim f as string 'File
Dim s as string 'Sheet
Dim r as string 'zelle
ThisWorkbook.Activate
Range("E6").Select 'E6 ist immer Startposition der Einträge
p = Range ("B6").Value 'Pfad im aktiven Sheet in Spalte B, ab Zeile 6
f = Range ("C6").Value 'Dateiname im aktiven Sheet in Sp C, ab Zeile 6
s = Range = "Tabelle1" 'Sheet in Quelldateien heisst immer "Tabelle1"
r = Range ("E4").Value 'Zelle im aktiven Sheet in Zeile 4, ab Spalte E
ActiveCell.Value = getvalue(p, f, s, r)
End Sub
Private Function getvalue(path, file, sheet, ref)
'holt einen Wert aus geschlossener Datei
Dim arg as String
'sicherstellen, dass das File existiert
If Right(path, 1) <> "\" then path = path & "\"
If Dir(path & file) = "" Then
getvalue = "File not found"
Exit Function
End if
'Wert holen und arg zuweisen
arg = "'" & path & "[" & file & "]" & sheet & "'!" & _
Range(ref).Range("A1").Address(, , xlR1C1)
getvalue = ExecuteExcel4Macro(arg)
End Function