Hallo
Ich habe die folgende Funktion, mit der ich einen Bereich aus einer geschlossenen Excel auslesen lassen kann und diese Bereich dann in die
derzeitge Excel Tabellen schreiben lassen kann. Da die Tabelle jeden Tag wächst und ich nicht den auszulesenden Bereich immer anpassenden möchte,
würde ich gerne, dass immer nur der Bereich ausgelesen wird in der Quelldatei, der in der auch gefüllt ist. Also die Spalten sind immer gleich,
aber die zeilen werden täglich mehr.
Was gibt es daür für Lösungen?
Vielen Dank
Ich habe die folgende Funktion, mit der ich einen Bereich aus einer geschlossenen Excel auslesen lassen kann und diese Bereich dann in die
derzeitge Excel Tabellen schreiben lassen kann. Da die Tabelle jeden Tag wächst und ich nicht den auszulesenden Bereich immer anpassenden möchte,
würde ich gerne, dass immer nur der Bereich ausgelesen wird in der Quelldatei, der in der auch gefüllt ist. Also die Spalten sind immer gleich,
aber die zeilen werden täglich mehr.
Was gibt es daür für Lösungen?
Vielen Dank
Visual Basic-Quellcode
- Sub Bereich_auslesen()
- '** Dimensionierung der Variablen
- Dim pfad As String, datei As String, blatt As String, bereich As Range, zelle As Object
- '** Angaben zur auszulesenden Zelle
- pfad = "C:\Datenauswertung"
- datei = "Datei.xlsm"
- blatt = "Tabelle1"
- Set bereich = Range("A3:H10")
- '** Bereich auslesen
- For Each zelle In bereich
- '** Zellen umwandeln
- zelle = zelle.Address(False, False)
- '** Eintragen in Bereich
- ActiveSheet.Cells(zelle.Row, zelle.Column).Value = GetValue(pfad, datei, blatt, zelle)
- Next zelle
- 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