alze1970
Goto Top

Wie kann ich alle Excel-Dateien eines bestimmten Unterverzeichnisses in einem Tabellenblatt auflisten?

Hallo zusammen,

wie kann ich mit hilfe eines Makros die Dateinamen aller Excel-Dateien eines bestimmten Unterverzeichnisses in einem Tabellenblatt in Spalte A auflisten? Anschließend soll aus der Datei der Inhalt einer Zelle (welcher zwar immer in der gleichen Spalte aber in unterschiedlichen Zeilen sein kann). In der Spalte vor der zu importierenden Zelle steht immer der gleiche Inhalt ("Gesamt").

Danke im voraus

alze1970

Content-Key: 90167

Url: https://administrator.de/contentid/90167

Printed on: April 18, 2024 at 23:04 o'clock

Member: KHP
KHP Jun 19, 2008 at 08:04:39 (UTC)
Goto Top
Hallo,

versuch's mal mit dem Öffnen der Dateien, folgendermaßen:

    f = (FileSystem.Dir(VBAProject.DieseArbeitsmappe.Path & "\*.xls", vbNormal))  
   If f = "" Then Exit Sub   
   Do While f <> ""  
     fp = VBAProject.DieseArbeitsmappe.Path & "\" & f  
     Workbooks.Open Filename:=fp 
     '### hier die Anweisungen...  

     f = FileSystem.Dir
   Loop

Das dürfte für den Einstieg reichen, Gruß - Tobias
Member: alze1970
alze1970 Jun 19, 2008 at 08:36:33 (UTC)
Goto Top
Hallo,

das mit dem Filenamen eintragen hab ich mittlerweile folgendermaßen gelöst:

Private Sub Worksheet_Activate()

Dim dat As String
Dim Zeile As Integer
Zeile = 5
dat = Dir("*.xls")
Do While dat > ""
Zeile = Zeile + 1
Cells(Zeile, "A") = dat
dat = Dir
Loop
End Sub

Hierbei werden die Namen der vorhandenen Excel-Files im Verzeichnis beim aktivieren des Worksheets in die Spalte A eingetragen. Wo ich noch Probleme hab ist das eintragen des Zellinhaltes (In der in Spalte A eingetragenen Datei, Spalte B, Zeile wechselnd; jedoch ist immer in der Spalte A, gleiche Zeile der Text "Gesamt" eingetragen). Kannst du mir hierbei noch nen Tip geben?

Danke

Alex
Member: KHP
KHP Jun 19, 2008 at 09:14:23 (UTC)
Goto Top
Du müßtest wohl die einzelnen Workbooks im Verzeichnis öffnen (s. oben) und dann mit einer Schleife z.B.
for i=1 to workbooks.count
 if workbook(i).name <> activeworkbook.name then
  '###Anweisungen z.B.  gesuchteDaten = workbook(i).worksheet(1).cells(1,2).value  
 

 workbook(i).close
 endif
next i

die gewünschten Daten heraussuchen, ggf. noch eine Schleife einbauen um das Dokument zu durchsuchen.