AW: Ergebnisse mit Schleife darstellen/auflisten
14.08.2015 00:44:06
fcs
Hallo Vaidotas,
das Grundgerüst für die Auswertung der Dateien in einem Verzeichnis kann wie folgt aussehen.
Den auswertenden Teil, der die Daten der Quelltabellen in die Zeilen einträgt musst du anpassen.
Gruß
Franz
Sub prcGetData()
Dim strDir As String
Dim strFile As String
Dim wkbBase As Workbook, rgBase As Range, lngOffset As Long
Dim wkbQuelle As Workbook, wksQuelle As Worksheet, Zeile_Q As Long
Dim StatusCalc As Long
'Zieldatei setzen
Set wkbBase = ThisWorkbook
'Auszuwertendes Verzeichnis einlesen
strDir = wkbBase.Sheets("Mapping").Range("strDir")
With Application
strDir = strDir & IIf(Right(strDir, 1) = .PathSeparator, "", .PathSeparator)
End With
strFile = Dir(strDir & "*.xls*")
wkbBase.Activate
'Startzelle für das Eintragen der Daten setzen
Set rgBase = wkbBase.Sheets("Recon").Range("A1")
'gefundene Dateien abarbeiten
If strFile = "" Then
MsgBox "keine Excel-Datei im Verzeichnis" & vbLf & vbLf _
& strDir, _
vbOKOnly, "Dateien auswerten"
Else
'Makrobremsen lösen
With Application
StatusCalc = .Calculation
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
lngOffset = -1
Do Until strFile = ""
'Datei schreibgeschützt öffnen
Set wkbQuelle = Application.Workbooks.Open(Filename:=strDir & strFile, _
ReadOnly:=True)
'Tabelle mit Daten setzen
Set wksQuelle = wkbQuelle.Worksheets(1)
'Daten auswerten
With wksQuelle
For Zeile_Q = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(Zeile_Q, 1).Text "" Then
lngOffset = lngOffset + 1
rgBase.Offset(lngOffset, 0).Value = strFile
rgBase.Offset(lngOffset, 1).Value = .Cells(Zeile_Q, 1).Value
End If
Next
End With
wkbQuelle.Close savechanges:=False
'nächste Datei auslesen
strFile = Dir
Loop
'Makrobremsen zurücksetzen
With Application
.Calculation = StatusCalc
.EnableEvents = True
.ScreenUpdating = True
End With
End If
End Sub