Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
964to968
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
964to968
964to968
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suche von Tabellen mit best. Tabellenblättern -VBA

Suche von Tabellen mit best. Tabellenblättern -VBA
07.04.2008 13:56:00
Tabellen
Liebe Excel-Profis,
sicherlich hat der eine oder andere schon eine Fertiglösung im Excel-Portfolio. Hier das Problem:
Wie kann ich - mit VBA - bestimmte Laufwerke / Ordner nach xls-Tebellen durchsuchen, die ein Tabellenblatt mit einem bestimmten Namen enthalten (z.B. "Jahressummen"), und mir die Namen der Dateien mit vollständigen Pfadangaben in eine Tabelle schreiben?
Vielen Dank für Eure Hilfe.
Gruß
Jürgen

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche von Tabellen mit best. Tabellenblättern
07.04.2008 14:12:08
Tabellen
Hallo,
dafür muss man jede .xls öffnen, prüfen und wieder schließen. Das kann Jahre dauern.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Suche von Tabellen mit best. Tabellenblättern
07.04.2008 14:16:20
Tabellen
Hallo Rudi,
deshalb wäre ja auch eine VBA-Lösung für mich interessant, denn das erspart mir das manuelle Öffnen-Prüfen-Schließen in den Dateiordnern über den Windows-Explorer.
Gibt es nicht irgendetwas als Vorlage (auch wenn es - bei vielen xls im Ordner - lange laufen sollte)?
Jürgen

AW: Suche von Tabellen mit best. Tabellenblättern
07.04.2008 14:31:00
Tabellen
Hallo,
teste:

Sub DateiListe()
Dim FSO As Object, oFolder As Object, oFiles As Object, oFile As Object
Dim strFolder As String, wks As Worksheet, wkb As Workbook
With Application.FileDialog(4)   '1=Open; 2=SaveAs; 3=FilePicker; 4=FolderPicker
.AllowMultiSelect = False
.InitialFileName = "c:\"
.InitialView = 2 '1=Liste; 2=Details; 3=properties; 4=Preview; 5=Thumbnail; 6=LargeIcons;  _
7=SmallIcons
.Title = "Bitte einen Ordner wählen"
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 oFiles = oFolder.Files
For Each oFile In oFiles
If oFile.Name Like "*.xls" Then
Set wkb = Workbooks.Open(oFile)
For Each wks In Worksheets
If wks.Name = "Summen" Then   'anpassen
ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = oFile
End If
Next wks
wkb.Close False
End If
Next oFile
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Suche von Tabellen mit best. Tabellenblättern
07.04.2008 15:32:00
Tabellen
Danke fürs erste, Rudi, ein vielversprechender Ansatz
Aber: wie kann ich verhindern, dass Workbook-Open-Makros ausgeführt werden, und wie kann ich die xls-Dateien im Nur-Lesen-Modus öffnen (um die Meldung mit der Schreibschutz-Empfehlung zu unterdrücken)?
Gruß
Jürgen

AW: Suche von Tabellen mit best. Tabellenblättern
07.04.2008 15:41:00
Tabellen
Hallo,
einfach so:

Sub DateiListe()
Dim FSO As Object, oFolder As Object, oFiles As Object, oFile As Object
Dim strFolder As String, wks As Worksheet, wkb As Workbook
With Application.FileDialog(4)   '1=Open; 2=SaveAs; 3=FilePicker; 4=FolderPicker
.AllowMultiSelect = False
.InitialFileName = "c:\"
.InitialView = 2 '1=Liste; 2=Details; 3=properties; 4=Preview; 5=Thumbnail; 6=LargeIcons;  _
_
7=SmallIcons
.Title = "Bitte einen Ordner wählen"
If .Show = -1 Then
strFolder = .SelectedItems(1)
End If
End With
If strFolder = "" Then GoTo exit_sub
On Error GoTo exit_sub
Application.EnableEvents = False
Set FSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = FSO.getfolder(strFolder)
Set oFiles = oFolder.Files
For Each oFile In oFiles
If oFile.Name Like "*.xls" Then
Set wkb = Workbooks.Open(oFile, ignorereadonlyrecommended:=True)
For Each wks In Worksheets
If wks.Name = "Summen" Then   'anpassen
ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = oFile
End If
Next wks
wkb.Close False
End If
Next oFile
exit_sub:
Application.EnableEvents = True
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Suche von Tabellen mit best. Tabellenblättern
08.04.2008 10:26:00
Tabellen
Hallo Rudi,
beim Debugging bezieht sich der For Each

Set wkb = Workbooks.Open(oFile, ignorereadonlyrecommended:=True)
For Each wks In Worksheets
If wks.Name = "Summen" Then   'anpassen
ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = oFile
End If
Next wks


immer auf die Tabellennamen der Arbeitsmappe, in der das Makro läuft, und nicht auf die Tabellannamen des mit Workbooks.Open geöffneten Files.
Kannst Du helfen?
Danke.
Gruß
Jürgen

AW: Suche von Tabellen mit best. Tabellenblättern
08.04.2008 11:26:28
Tabellen
Hi Jürgen,
probiers mal so
For Each wks In wkb.Worksheets
Gruß
Reinhard

Anzeige
AW: Suche von Tabellen mit best. Tabellenblättern
08.04.2008 13:00:00
Tabellen
Danke, Rudi und Reinhard, hat geklappt!
Gruß
Jürgen

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige