Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
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

Inhaltsverzeichnis der Unterordner per VBATüftelei

Inhaltsverzeichnis der Unterordner per VBATüftelei
04.09.2018 15:34:11
jan
Hallo an die Gemeinde & Herber-Team,
um etwas Ordnung in meine Dateien-wust zu bekommen, such ich folgendes:
Ordner : Auto
Unterordner: Licht, Antrieb, Karosserie, Achsen, Räder
je nach Input, hab ich verschiedene Beiträge, die ich in die Unterordner
verschiebe und dort abspeichere.
Im Ordner Auto liegt eine Excelliste.
Dort möchte ich per Makro einzeln die Unterordner abrufen
bzw. eine Liste aller Eintrage pro Unterordner ( .pdf, .xls,.doc) anzeigen lassen.
Sozusagen:
Makro Licht
Makro Antrieb
Makro Karosserie
Makro Achsen
Makro Räder
....nehme an, es ist jeweils das gleiche Makro mit verschiedenen Unterordnernamen.
Rufe ich in der Liste per Button einzeln die Makros auf, werden die
Inhalte aktualisiert angezeigt.
Würde mich freuen, wenn jemand eine Tipp hat, wo so etwas zu finden ist,
oder einen passende Code parat hat
Vielen Dank voraus!
Mit freundlichen Grüßen
Jan

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhaltsverzeichnis der Unterordner per VBATüftelei
04.09.2018 15:52:45
Bernd
Hallo Jan,
hier eine kleine Spielerei von mir, vielleicht kannst du damit etwas anfangen?
https://www.herber.de/bbs/user/123745.xlsb
Sonnige Grüße aus Bremen
Bernd
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
05.09.2018 09:49:57
jan
Hallo Bernd, Hallo Peter
Vielen DAnk für eure Antworten, folgendes dazu:
Sub DateienAuflisten()
Dim lngZeile As Long
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim objDateienliste As Object
Dim objDatei As Object
Set objFileSystem = CreateObject("scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.GetFolder("C:\Ordnername")
Set objDateienliste = objVerzeichnis.Files
lngZeile = 1
For Each objDatei In objDateienliste
If Not objDatei Is Nothing Then
ActiveSheet.Cells(lngZeile, 1) = objDatei.Name
lngZeile = lngZeile + 1
End If
Next objDatei
End Sub
...funktioniert, jedoch fehlen die .docs und einen Teil der .pdf.
https://www.herber.de/bbs/user/123761.xlsm
Mit freundlichen Grüßen
Jan
Anzeige
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
05.09.2018 13:02:09
jan
Hallo, u.g. Code tut leider nicht ganz was er soll,
wie schon geschrieben ein Teil .docs oder ein Teil der .pdf zeigt er nicht an.
kann es, dass diese "unsauber" abgespeichtert wurden? Oder sind die Dateinamen zu lang?
Für Hilfe danke im voraus!
Sub DateienAuflisten()
Dim lngZeile As Long
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim objDateienliste As Object
Dim objDatei As Object
Set objFileSystem = CreateObject("scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.GetFolder("C:\Ordnername")
Set objDateienliste = objVerzeichnis.Files
lngZeile = 1
For Each objDatei In objDateienliste
If Not objDatei Is Nothing Then
ActiveSheet.Cells(lngZeile, 1) = objDatei.Name
lngZeile = lngZeile + 1
End If
Next objDatei
End Sub

https://www.herber.de/bbs/user/123745.xlsb
Anzeige
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
05.09.2018 13:09:12
PeterK
Hallo
Füg einmal folgendes vor der "For Each ..." Schleife ein

Msgbox(objDateienliste.count)

Stimmt hier die Anzahl auch nicht?
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
05.09.2018 14:25:39
jan
Hallo Peter, danke für die Hilfe.
hab den Zähler/counter eingebaut,
wie in der Beispielliste: 4 Dateien werden angezeigt.
Gezählt werden jedoch 7.
Auch bei einer andere Datei: angezeigt 21 / gezählt 25
Mit freundlichen Grüßen
Jan
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
05.09.2018 14:53:06
PeterK
Hallo
Sagt auch die Msgbox: 4 (oder 7)
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
05.09.2018 15:01:15
jan
Hallo Peter,
..., wenn ich das Makro starte, meldet sich die Msgbox bzw. poppt auf mit
Anzahl 7 , dann klick ich in der Msgbox auf OK, das Makro läuft weiter und
zeigt nur 4 Dateien an
Mit freundlichen Grüßen
Jan
Anzeige
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
05.09.2018 15:16:59
PeterK
Hallo
Probier mal

For Each objDatei In objDateienliste
ActiveSheet.Cells(lngZeile, 1) = objDatei.Name
lngZeile = lngZeile + 1
Next objDatei

AW: Inhaltsverzeichnis Unterordner per VBATüftelei
05.09.2018 15:33:51
jan
Hallo Peter,
hab es eingebaut und getestet.
Ist genauso wie vorher.
Gruesse.Jan.
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
05.09.2018 16:09:26
PeterK
Hallo
Ich hab erst jetzt gesehen, dass Du eine UF verwendest. In diesem Zusammenhang würde ich Dir empfehlen nicht "ActiveSheet.Cells" zu verwenden sondern den genauen Pfad zu benutzen "Worksheets("Name").Cells"
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
06.09.2018 11:15:30
jan
Hallo Peter,
danke dir für deine unermütliche Unterstützung.
Der Hinweis "ActiveSheet.Cells" durch "Worksheets("Name").Cells" ersetzen, versteh ich nicht.
Sub DateienAuflisten_IL()
Dim lngZeile As Long
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim objDateienliste As Object
Dim objDatei As Object
Set objFileSystem = CreateObject("scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.GetFolder("C\test\")
Set objDateienliste = objVerzeichnis.Files
lngZeile = 8
MsgBox (objDateienliste.Count)
For Each objDatei In objDateienliste
If Not objDatei Is Nothing Then
ActiveSheet.Cells(lngZeile, 6) = objDatei.Name
lngZeile = lngZeile + 1
End If
Next objDatei
End Sub
...die Msgbox erkennt alle Dateien im genannten Ordner
-> "ActiveSheet.Cells" verstehe ich so, dass die Ausgabe in der aktuelle Liste erfolgt
-> ich sach mal, irgendwas fehlt bzw. irgendwas schränkt ein, dass nur ein Teil dargestellt
wird .
Vielleicht fällt dir noch etwas dazu ein ?
Mit freundlichen Grüßen
Jan
Anzeige
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
06.09.2018 14:48:41
jan
Hallo Peter, hab was anders irgendwo gefunden.
das Auslesen funktioniert. Ich möchte jedoch die Ausgabe auf dem Tabellenblatt platzieren,
und find nix dazu im Code?
Gruesse & danke im Voraus. Jan
Sub Einlesen ()
Dim zeile As Variant
Dim sFile As String, sPattern As String, sPath As String
Dim iRow As Integer
Columns(1).ClearContents
sPath = "C:Verzeichnis\" ' Hier gibst Du Deinen Pfand zum gewünschten Verzeichnis an
If Right(sPath, 1) "\" Then sPath = sPath & "\"
sPattern = "*.*"
sFile = Dir(sPath & sPattern)
Do Until sFile = ""
iRow = iRow + 1
Cells(iRow, 1).Value = sFile
sFile = Dir()
Loop
For zeile = 1 To Cells.SpecialCells(xlLastCell).Row
Next
Anzeige
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
06.09.2018 15:12:54
PeterK
Hallo
Ich gehe davon aus, das Dein Tabellenblatt "DateiListe" heisst ;-)
P.S. Das war unetr anderem auch mein Vorschlag statt "ActiveSheet"

Sub Einlesen()
Dim zeile As Variant
Dim sFile As String, sPattern As String, sPath As String
Dim iRow As Integer
Worksheets("DateiListe").Columns(1).ClearContents 'löscht die erste Spalte!
sPath = "C:Verzeichnis\"    ' Hier gibst Du Deinen Pfand zum gewünschten Verzeichnis an
iRow = 2
If Right(sPath, 1)  "\" Then sPath = sPath & "\"
sPattern = "*.*"
sFile = Dir(sPath & sPattern)
Do Until sFile = ""
iRow = iRow + 1
Worksheets("DateiListe").Cells(iRow, 1).Value = sFile
sFile = Dir()
Loop

Anzeige
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
06.09.2018 15:29:27
jan
Hallo Peter, dieser code funktioniert:
Sub Einlesen ()
Dim zeile As Variant
Dim sFile As String, sPattern As String, sPath As String
Dim iRow As Integer
Columns(1).ClearContents
sPath = "C:Verzeichnis\" ' Hier gibst Du Deinen Pfand zum gewünschten Verzeichnis an
If Right(sPath, 1) "\" Then sPath = sPath & "\"
sPattern = "*.*"
sFile = Dir(sPath & sPattern)
Do Until sFile = ""
iRow = iRow + 1
Cells(iRow, 1).Value = sFile
sFile = Dir()
Loop
For zeile = 1 To Cells.SpecialCells(xlLastCell).Row
Next
Sub End funktioniert.Zeigt allen an.
in "Cells (iRow, 1).Value=False " kann ich die Ausgabe in die Spalten platzieren
Wie kann ich die Ausgabe pro Zeile einstellen?
Grüesse.Jan.
Anzeige
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
06.09.2018 15:36:30
PeterK
Hallo
Cells hat 2 Parameter : Zeile und Spalte
Mit Cells(1,1).Value würdest Du in die 1. Zeile und 1. Spalte schreiben (=A1)
Mit Cells(1,5).Value würdest Du in die 1. Zeile und 5. Spalte schreiben (=E1)
Mit Cells(6,1).Value würdest Du in die 6. Zeile und 1. Spalte schreiben (=A6)
In deinem Makro wird die Zeile über die Variable "iRow" (die Du auch initialisieren mußt, siehe meinen Code) raufgezählt, die Spalte ist auf 1 fixiert.
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
07.09.2018 09:38:39
jan
Hallo Peter,
sozusagen Operation geglückt, Patient lebt sogar!
.....das mit dem "worksheet" komme ich nicht klar. Aber mit den angepassten Code
kann ich super arbeiten. next step, wenn der code auch noch hyperlinks daneben packt.
Das machen wir ein anderes Mal. Vielen Dank!
Sub Einlesen_()
Dim zeile As Variant
Dim sFile As String, sPattern As String, sPath As String
Dim iRow As Integer
ActiveSheet.Columns(1).ClearContents 'löscht die erste Spalte!
sPath = "C\test\..."    ' Hier gibst Du Deinen Pfand zum gewünschten Verzeichnis an
iRow = 8
If Right(sPath, 1)  "\" Then sPath = sPath & "\"
sPattern = "*.*"
sFile = Dir(sPath & sPattern)
Do Until sFile = ""
iRow = iRow + 1
ActiveSheet.Cells(iRow, 3).Value = sFile
sFile = Dir()
Loop
For zeile = 1 To Cells.SpecialCells(xlLastCell).Row
Next
End Sub

Anzeige
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
07.09.2018 10:45:30
PeterK
Hallo
Das mit den "WorkSheets" ist ganz einfach. Wenn Du ein neues Excel-File erstellst, wird automatisch ein Arbeitsblatt mit dem Namen "Tabelle1" erzeugt. Willst Du dieses Arbeitsblatt von einem Makro aus ansprechen, dann mußt Du dies über die englische Notation machen (Arbeitsblatt = Worksheets). Als Makro Code : WorkSheets("Tabelle1").Cells usw. Hast Du mehrere Arbeitsblätter, kannst Du ganz einfach z.B. Werte von einem Arbeitsblatt ins andere kopieren:
WorkSheets("Tabelle2").Cells(1,1).value = WorkSheets("Tabelle1").Cells(1,1).value
AW: Inhaltsverzeichnis Unterordner per VBATüftelei
07.09.2018 11:49:05
jan
Hallo Peter, ich werd mich nach deiner Anleitung beschäftigen, würd so gern
,aber ich schaffs heute nicht mehr...
Mit freundlichen Grüßen
Jan
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige