Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - Exel Dateien (aus Unterordnern) zusammenfass

VBA - Exel Dateien (aus Unterordnern) zusammenfass
18.02.2015 11:43:54
BODO
Hallo zusammen,
ich muss folgendes Problem lösen und hoffe, ihr könnt helfen (Excel 2010)! :-)
Wir haben auf dem Share mehrere Ordner und Unterordner u.a:
Ordner 1
Unterordner 1
Unterordner 2...
Ordner 2
Unterordner 1...
Nun sind in Ordner 2 viele Unterordner - für jeden Kunden eine und darin weitere Unterordner, zB Aktuelles, Umsatz usw.
Nun soll eine Excel-Datei in Ordner 1 auf alle Excel-Dateien in Ordner 2 zugreifen, die "NAME" heissen und die Inhalte zusammenfassen.
Hier mal mein aktueller Versuch und die Probleme damit:
- Unterordner werden nicht durchsucht, nur der Ordner 2 an sich
- es wird ein neues Tabellenblatt geöffnet, im Idealfall soll das Ergebnis
aber im Tabellenblatt mit dem Button ab Zeile 4 und Spalte B eingefügt werden
(Formatierung von diesem Blatt (Farben, Spaltenbreiten) sollten behalten
werden.
---
Option Explicit
Sub Zusammenfassung()
Dim oTargetSheet As Object
Dim oSourceBook As Object
Dim sPfad As String
Dim sDatei As String
Dim lErgebnisZeile As Long
Dim s As Long
Dim z As Long
Set oTargetSheet = ActiveWorkbook.Sheets.Add
lErgebnisZeile = 1
sPfad = "\\PFAD\"
sDatei = Dir(CStr(sPfad & "NAME*.xl*"))
Do While sDatei  ""
Set oSourceBook = Workbooks.Open(sPfad & sDatei, False, True)
For z = 4 To oSourceBook.Sheets("NAME").UsedRange.Rows.Count
If Trim(CStr(oSourceBook.Sheets("NAME").Cells(z, 1).Value))  "" Then
For s = 1 To oSourceBook.Sheets("NAME").UsedRange.Columns.Count
oTargetSheet.Cells(lErgebnisZeile, s + 1).Value = _
oSourceBook.Sheets("NAME").Cells(z, s).Value
Next s
lErgebnisZeile = lErgebnisZeile + 1
End If
Next z
oSourceBook.Close False 'nicht speichern
sDatei = Dir()
Loop
Application.ScreenUpdating = True
Set oTargetSheet = Nothing
Set oSourceBook = Nothing
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Exel Dateien (aus Unterordnern) zusammenfass
18.02.2015 12:50:15
Rudi
Hallo,
das ist schon ein bisschen komplexer.
Als Ansatz:
Sub aaaa()
Dim FSO As Object, oFolder As Object, oDictF As Object, oItem
Dim strFolder As String
Dim wkbQ As Workbook
Application.ScreenUpdating = False
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Ordner wählen"
.AllowMultiSelect = False
If .Show = -1 Then
strFolder = .SelectedItems(1)
End If
End With
If strFolder = "" Then Exit Sub
Set FSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = FSO.GetFolder(strFolder)
Set oDictF = CreateObject("Scripting.dictionary")
prcFiles oFolder, oDictF
prcSubFolders oFolder, oDictF
For Each oItem In oDictF
Set wkbQ = Workbooks.Open(oItem)
'mach was
wkbQ.Close False
Next
End Sub
Sub prcFiles(oFolder, oDictF)
Dim oFile As Object
For Each oFile In oFolder.Files
With oFile
oDictF(.Path) = 0
End With
Next
End Sub
Sub prcSubFolders(oFolder, oDictF)
Dim oSubFolder As Object
For Each oSubFolder In oFolder.SubFolders
prcFiles oSubFolder, oDictF
prcSubFolders oSubFolder, oDictF
Next
End Sub
Gruß
Rudi

Anzeige
AW: VBA - Exel Dateien (aus Unterordnern) zusammenfass
18.02.2015 13:43:44
BODO
Hallo,
danke schonmal! Jetzt mal ne ganz blöde Frage:
Das Makro öffnet ja das Shareverzeichnis!?
Das muss dann noch mit meinem Makro verknüpft werden oder wie?
Bin leider kompletter Anfänger.
Danke und Gruß

AW: VBA - Exel Dateien (aus Unterordnern) zusammenfass
18.02.2015 14:27:52
Rudi
Hallo,
Sub Start()
Dim FSO As Object, oFolder As Object, oDictF As Object, oItem
Dim strFolder As String
Dim oSourceBook As Workbook, z As Long, s As Long, lErgebnisZeile As Long
Dim oTargetSheet As Worksheet
Application.ScreenUpdating = False
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Ordner wählen"
.AllowMultiSelect = False
If .Show = -1 Then
strFolder = .SelectedItems(1)
End If
End With
If strFolder = "" Then Exit Sub
Set oTargetSheet = ActiveWorkbook.Sheets.Add
lErgebnisZeile = 1
Set FSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = FSO.GetFolder(strFolder)
Set oDictF = CreateObject("Scripting.dictionary")
prcFiles oFolder, oDictF
prcSubFolders oFolder, oDictF
For Each oItem In oDictF
Set oSourceBook = Workbooks.Open(oItem, False, True)
For z = 4 To oSourceBook.Sheets("NAME").UsedRange.Rows.Count
If Trim(CStr(oSourceBook.Sheets("NAME").Cells(z, 1).Value))  "" Then
For s = 1 To oSourceBook.Sheets("NAME").UsedRange.Columns.Count
oTargetSheet.Cells(lErgebnisZeile, s + 1).Value = _
oSourceBook.Sheets("NAME").Cells(z, s).Value
Next s
lErgebnisZeile = lErgebnisZeile + 1
End If
Next z
oSourceBook.Close False 'nicht speichern
Next
End Sub
Sub prcFiles(oFolder, oDictF)
Dim oFile As Object
For Each oFile In oFolder.Files
With oFile
oDictF(.Path) = 0
End With
Next
End Sub
Sub prcSubFolders(oFolder, oDictF)
Dim oSubFolder As Object
For Each oSubFolder In oFolder.SubFolders
prcFiles oSubFolder, oDictF
prcSubFolders oSubFolder, oDictF
Next
End Sub

Gruß
Rudi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige