ich bin gerade dabei zwei Arbeitsmappen miteinander zu verknüpfen, weil ich gerne Werte aus einer in die andere Arbeitsmappe überspielen würde.
Mit einzelnen Werten klappt das soweit problemlos.
'Zugriff auf geschlossene Mappe
Sub Zelle_auslesen()
'** Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, zelle As String
'** Angaben zur auszulesenden Zelle
pfad = "E:\Beispielpfad"
datei = "Blatt.xlsm"
blatt = "1"
bezug = "d6"
'** Eintragen in Zelle
ThisWorkbook.Sheets("Standard").Cells(38, 17) = GetValue(pfad, datei, blatt, _
bezug)
End Sub
Private Function GetValue(pfad, datei, blatt, zelle)
'** Daten aus geschlossener Arbeitsmappe auslesen
'*** Dimensionierung der Variablen
Dim arg As String
'Sicherstellen, dass das datei vorhanden ist
If Right(pfad, 1) "\" Then pfad = pfad & "\"
If Dir(pfad & datei) = "" Then
GetValue = "datei Not Found"
Exit Function
End If
'** Das Argument erstellen
arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Range( _
zelle).Range("A1").Address(, , xlR1C1)
'** Auslesen über Excel4Macro
GetValue = ExecuteExcel4Macro(arg)
End Function
Ich würde nun aber gerne nicht nur auf ein Tabellenblatt zugreifen sondern gleich auf mehrere. Diese sind fortlaufen nummeriert. Es soll immer die gleiche Zelle angesprochen werden, bloß in verschiedenen Blättern. Gibt es eine Möglichkeit, dass ich eine Schleife mit einer Variablen erstelle? Also quasi: Blattname: 1
1+k
Sub Zelle_auslesen()
For k = 3 To lngsheets
'** Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, zelle As String
'** Angaben zur auszulesenden Zelle
pfad = "E:\Beispielpfad"
datei = "Blatt.xlsm"
blatt = 1 + k
bezug = "d6"
'** Eintragen in Zelle
ThisWorkbook.Sheets("Standard").Cells(38, 17) = GetValue(pfad, datei, blatt, _
bezug)
Next k
End Sub
Das klappt aber leider so auch noch nicht so ganz.Die Ergebnisse sollen dann ab Cells (38/17) nach unten hin ausgegeben werden.
Gibt es hierfür eine Lösung und wie würde diese aussehen?
Vielen Dank schon mal
Ron