Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1408to1412
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige