Hallo M.O.,
ich habe ein Script aus diesem Forum gefunden, dass auch das gesamte Verzeichnis einliest.
Ich würde gerne das übernehmen wollen.
Es soll nun die gesamte Spalte A zwischen den Werten "Menge" und "High", die sich in Spalte A befinden, im Zielsheet
"Auswertung" in die erste freie Zelle in Spalte A ausgeben.
Danach soll wieder den Bereich ab dem Inhalt "Menge" und "High", die sich in Spalte A befinden, durchgehen, jedoch soll er
dann in diesem Bereich die Spalte B( nicht wieder A) im Zielsheet "Auswertung" in die erste freie Zelle in Spalte B ausgeben.
Dabei möchte ich, dass alle ausgelesenen Werte eines Sheets bei jeder neu ausgelesenen Zelle mit einem Zeilenumbruch in
das Zielworksheet "Auswertung" in eine einzige Zelle kopiert wird.
Es kann sein, dass diese Abgrenzung von "Menge" und "High" mehrmals vorkommt. Daher Soll das Makro solange durchlaufen
bis zur letzten beschriebenen Zeile im Sheet.
Ich hoffe, du konntest mir folgen.
Vielen Dank schon einmal:)
Sub Auswertung_start()
'Objektverweise zuweisen
Set objFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set objDateien = objFileSystemObject.getfolder("C:\folder")
Set wksAuswertsheet = ThisWorkbook.Sheets("Auswertung")
Call Dateien_auswerten
'Zuweisung wieder aufheben
Set objFileSystemObject = Nothing
Set objDateien = Nothing
Set wksAuswertsheet = Nothing
'Text aus Statusbar löschen
Application.StatusBar = ""
End Sub
'###########################################################################################
Sub Dateien_auswerten()
Application.ScreenUpdating = False
For Each objDatei In objDateien.Files
If Right(objDatei.Name, 4) = ".csv" Then
'erste freie Zelle in der Zieldatei in Spalte A ermitteln
lngFirstFreeRow = wksAuswertsheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'Meldung in Statusbar anzeigen
Application.StatusBar = "Datei """ & objDatei.Name & """ wird ausgelesen!"
DoEvents
'Gefundene Datei unsichtbar öffnen
GetObject (objDatei)
'Alle Werte aus Spalte A zwischen dem Bereich "Menge" bis "High" aus Spalte A auslesen
wksAuswertsheet.Cells(lngFirstFreeRow, 1) = _
Workbooks(objDatei.Name).Sheets(1).Range(??:??)
'Alle Werte aus Spalte B zwischen dem Bereich "Menge" bis "High" aus Spalte A auslesen
wksAuswertsheet.Cells(lngFirstFreeRow, 2) = _
Workbooks(objDatei.Name).Sheets(1).Range(??:??)
wksAuswertsheet.Cells(lngFirstFreeRow, 3) = Workbooks(objDatei.Name).Sheets(1).Name
'Geöffnete Datei wieder schließen ohne zu speichern
Workbooks(objDatei.Name).Close savechanges:=False
End If
Next
'Nächstes Verzeichnis abfragen
For Each objWeitereDateien In objDateien.subfolders
Set objDateien = objWeitereDateien
Call Dateien_auswerten
Next
End Sub
Viele Grüße und Danke noch einmal!!
Flo