Suchen und Auslesen einzelner Zellen aus vielen Excel-Dateien

pBrue

Newbie
Registriert
Mai 2014
Beiträge
1
Hallo,

ich würde gerne aus ca. 600 Excel-Dateien mit einem Makro mit bestimmte Angaben in jeder Excel-Liste herauskopieren und die Daten aus alles Dateien in einer abspeichern.
Ich habe mir bereits ein Makro gebastelt, aber dies funktioniert leider noch nicht so wie es soll.

Also Info zu den Excel-Listen: Das Suchwort steht in jeder Excel-Datei in Zeile 1 in form einer Überschrift (Z. B. "Name", "Ort", ...) und in Zeile zwei steht der dazugehörige Eintrag.
Ich würde mich riesig freuen wenn sich damit jemand auskennt und sich das jemand mal anschauen würde. Vielleicht ist es einfach nur ein ganz simpler Fehler, den ich einfach nur nicht entdecke.

Hier noch das bisherige Marko:

Option Explicit

Private WS As Object

Sub Pfadmakro()
Dim cDir As String
Dim sPath As String
Dim arrSuche As Variant
Dim i As Long
Dim lRow As Long
Dim lcolumn As Long
Dim WB As Workbook
Dim TS As Worksheet

sPath = "C:\Zielordner\"
arrSuche = Array("Vorwahl", "Position", "Rufnummer", "Name")
cDir = Dir(sPath & "*.xlsx")

Do While cDir <> ""
Set WB = Workbooks.Open(sPath & cDir) 'öffnet die Datei
Set WS = WB.Worksheets("Tabelle1")
Set TS = ThisWorkbook.Worksheets("Tabelle1")

lcolumn = TS.Cells(1, Columns.Count).End(xlToLeft).Columns + 1
For i = LBound(arrSuche) To UBound(arrSuche)
TS.Cells(lcolumn, i + 1) = Modul1.Suche(arrSuche(i))
Next i

WB.Close savechanges:=False

cDir = Dir 'nächste Datei lesen
Loop
End Sub

Function Suche(ByVal strSuche As String) As String
Dim Zelle As Range

Set Zelle = WS.Range("A:ZZ").Find(What:=strSuche, LookIn:=xlValues, LookAt:=xlWhole)

If Not Zelle Is Nothing Then
Suche = Zelle.Offset(1, 0).Text
End If
End Function



Vielen Dank schon mal im Voraus!

Grüße

pBrue
 
Hi,

also: Du hast 600 .xlsx-Dateien. In denen stehen jeweils in Zeile 1 Überschriften, und in Zeile 2 dazu gehörige Einträge. D.h., du hast in jeder Datei genau 2 gefüllte Zeilen, oder sehe ich das falsch?

Daraus willst du dann im Endeffekt eine Datei machen, welche alle diese Einträge zusammenführt. Wie soll diese Datei aussehen? Wie sollen die Einträge sortier sein? Ich werd aus dem Makro nicht so schlau wie ichs gern würde ^^

Grüße

Edit: Was mir spontan auffällt: Du weist cDir am Anfang sPath und *.xlsx zu ("cDir = Dir(sPath & "*.xlsx")"), und später in der do while-scheilfe machst du dann nochmal sPath vornedran ("Set WB = Workbooks.Open(sPath & cDir)"). Ich glaube das ist doppelt gemoppelt.
 
Zuletzt bearbeitet:
Zurück
Oben