VBA Excel Mehrere Dateien auslesen
Hallo an Alle,
ich habe folgendes Problem:
Ich habe einen Ordner, in diesem befinden sich mehrere xls-Dateien (ca. 2.000) ... alle haben den gleichen Aufbau, nur der Tabellenname ist in jeder Datei anders .. es gibt in jeder Datei aber immer nur eine Tabelle.
- In der 1. Zeile der Tabelle befinden sich die Spaltenüberschriften
- ab der 2. Zeile soll jede Zeile durchlaufen und nach einem bestimmten Wert in Spalte "G" gesucht werden
- Gibt es in der Spalte "G" diesen bestimmten Wert, dann soll die gesamte Zeile kopiert werden und in eine neue Datei eingefügt werden
- diese neu erstellte Datei soll aber nicht geschlossen werden, das heisst, alle gefunden Zeilen, aus allen xls-Dateien, sollen in diese neue Datei hineingepackt bzw. hineinkopiert werden ... nacheinander ..
Ich hoffe, mir kann einer dabei helfen.
Vielen Dank
Grüße
ich habe folgendes Problem:
Ich habe einen Ordner, in diesem befinden sich mehrere xls-Dateien (ca. 2.000) ... alle haben den gleichen Aufbau, nur der Tabellenname ist in jeder Datei anders .. es gibt in jeder Datei aber immer nur eine Tabelle.
- In der 1. Zeile der Tabelle befinden sich die Spaltenüberschriften
- ab der 2. Zeile soll jede Zeile durchlaufen und nach einem bestimmten Wert in Spalte "G" gesucht werden
- Gibt es in der Spalte "G" diesen bestimmten Wert, dann soll die gesamte Zeile kopiert werden und in eine neue Datei eingefügt werden
- diese neu erstellte Datei soll aber nicht geschlossen werden, das heisst, alle gefunden Zeilen, aus allen xls-Dateien, sollen in diese neue Datei hineingepackt bzw. hineinkopiert werden ... nacheinander ..
Ich hoffe, mir kann einer dabei helfen.
Vielen Dank
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 273197
Url: https://administrator.de/contentid/273197
Ausgedruckt am: 15.11.2024 um 23:11 Uhr
7 Kommentare
Neuester Kommentar
Moin abuelito ...
bald haben wir hier aber mal einen gut bei dir.
(Zur Info, das Script ist momentan so eingestellt nur ein Teil der Strings übereinstimmen muss, das lässt sich aber durch Ändern des Parameters Lookat in Zeile 19 anpassen indem man ihn auf xlWhole stellt. dann muss der gesamte String übereinstimmen)
Grüße Uwe
bald haben wir hier aber mal einen gut bei dir.
(Zur Info, das Script ist momentan so eingestellt nur ein Teil der Strings übereinstimmen muss, das lässt sich aber durch Ändern des Parameters Lookat in Zeile 19 anpassen indem man ihn auf xlWhole stellt. dann muss der gesamte String übereinstimmen)
Sub ImportFoundRows()
'Pfad zu den Dateien
Const PATH = "C:\Ordner"
'Variablen
Dim wb As Workbook, strSearchTerm As String, c As Range, firstAddress As String, file As String
'Suchwort
strSearchTerm = "SUCHWORT"
'Displayaktualisierung deaktivieren
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'Dateien suchen
file = Dir(PATH & "\*.xls")
While file <> ""
'Datei öffnen
Set wb = Workbooks.Open(PATH & "\" & file, ReadOnly:=True)
With wb.Sheets(1)
'In der Spalte G nach dem Suchwort suchen
With .Range("G2:G" & .Cells(Rows.Count, "G").End(xlUp).Row)
Set c = .Find(strSearchTerm, LookIn:=xlValues, Lookat:=xlPart)
If Not c Is Nothing Then
firstAddress = c.Address
Do
'Ganze gefundene Zeile in das aktuelle Sheet kopieren
c.EntireRow.Copy ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End With
'Datei schließen
wb.Close False
'Nächste Datei suchen
file = Dir
Wend
'Displayaktualisierung wieder aktivieren
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Zitat von @abuelito:
das Script öffnet zwar alle Dateien nach und nach, aber es werden keine Daten in die neue Datei kopiert.
Die Daten werden in die aktuelle Arbeitsmappe (aktives Sheet) importiert in dem das Makro läuft!das Script öffnet zwar alle Dateien nach und nach, aber es werden keine Daten in die neue Datei kopiert.
Zitat von @abuelito:
Der importiert die Zeilen aber nicht .. liegt es evtl. am Suchwort? .. Dieses lautet A124B2
Dann muss es daran liegen, geht hier nämlich einwandfrei ...Der importiert die Zeilen aber nicht .. liegt es evtl. am Suchwort? .. Dieses lautet A124B2
Denke daran Spalte G ... Ansonsten File irgendwo hochladen, dann ist das schnell erledigt !
Liegen die Daten in den Arbeitsmappen wirklich jeweils im ersten Sheet wie du gesagt hast ?
Ohne ein Beispielsheet von deiner Seite ist das hier Raten nach Zahlen denn es geht ja wie gesagt. Tu mir doch bitte einen Gefallen und poste ein Beispielsheet, um das ganze hier abzukürzen ... dann findet sich der Fehler bei dir sofort. Danke !
Ohne ein Beispielsheet von deiner Seite ist das hier Raten nach Zahlen denn es geht ja wie gesagt. Tu mir doch bitte einen Gefallen und poste ein Beispielsheet, um das ganze hier abzukürzen ... dann findet sich der Fehler bei dir sofort. Danke !