Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Verzeichnisse und Unterverzeichnisse auslesen

Forumthread: Verzeichnisse und Unterverzeichnisse auslesen

Verzeichnisse und Unterverzeichnisse auslesen
22.07.2003 23:40:31
Lydia
Hi, :-)
Schon wieder mal, aber leider scheine ich die gefundenen Progs falsch anzuwenden. Immerhin bin ich mit diesem hier schon so weit gekommen, das es mir *.xls ausliest aus Dokumente und Einstellungen.
Option Explicit
Dim StrNewDir As String
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Declare

Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare 

Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
'Aufruf des Dialogs zur Ordnerauswahl

Function GetDirectory(Optional msg) As String
Dim bInfo As BROWSEINFO
Dim Path As String
Dim r As Long, x As Long, pos As Integer
bInfo.pidlRoot = 0&
If IsMissing(msg) Then
bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus."
Else
bInfo.lpszTitle = msg
End If
bInfo.ulFlags = &H1
x = SHBrowseForFolder(bInfo)
Path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal Path)
If r Then
pos = InStr(Path, Chr$(0))
GetDirectory = Left(Path, pos - 1)
Else
GetDirectory = ""
End If
End Function

' Hauptprozedur

Sub DirImport()
Application.ScreenUpdating = False
StrNewDir = GetDirectory("Wählen Sie bitte einen Ordner aus:")
If StrNewDir = "" Then Exit Sub
If Right(StrNewDir, 1) <> "\" Then
StrNewDir = StrNewDir & "\"
End If
Call DirChange(StrNewDir)
Application.ScreenUpdating = True
End Sub

'Rekursive Ermittlung aller Dateien des eingestellten Verzeichnisse
'inklusive aller Unterverzeichnisse

Function DirChange(Optional StrNewDir As String)
Dim rngCell As Range
Dim FileArray() As String, DirArray() As String
Dim strFileName As String, strExtLink As String
Dim intCounter As Integer, intDirNr As Integer
Dim intDirMax As Integer, intPos As Integer
'Bildschrimaktualisierung ausschalten
Application.ScreenUpdating = False
'Array für Unterverzeichnisse dimensionieren
intDirMax = 20: ReDim DirArray(intDirMax)
'1. Dateinamen einlesen
strFileName = Dir(StrNewDir, 0 + 1 + 2 + 4 + 16)
'Do-Loop-Schleife bis FileName = ""
Do While strFileName <> ""
If strFileName <> "." And strFileName <> ".." Then
'Aktuelle Datei in Statuszeile anzeigen
Application.StatusBar = StrNewDir & strFileName & " wird bearbeitet..."
If GetAttr(StrNewDir & strFileName) <> vbDirectory And _
Right(strFileName, 3) = "xls" Then
'Wenn kein Ordner vorliegt und die Datei die Endung "xls" aufweist,
'Pfad & Dateinamen (zur Kontrolle) in Spalte A eintragen.
ThisWorkbook.Worksheets("Tabelle1").Range("A" & Range("A65536") _
.End(xlUp).Row + 1) = StrNewDir & strFileName
'Anzeige der Statuszeile zurücksetzen.
Application.StatusBar = False
ElseIf GetAttr(StrNewDir & strFileName) = vbDirectory Then 'Verzeichnis
'Befindet sich in der Variablen ein Verzeichnisname, wird
'die Anzeige der Statuszeile zurückgesetzt,
Application.StatusBar = False
'der Verzeichnisname in das Verzeichnisarray eingelesen und
DirArray(intDirNr) = strFileName: intDirNr = intDirNr + 1
'wenn die Verzeichnisanzahl > der oben festgelegten Maximalanzahl
'ist, wird das Array neu dimensioniert.
If intDirNr > intDirMax Then
intDirMax = intDirMax + 20: ReDim Preserve DirArray(intDirMax)
End If
End If
End If
'Nächsten Dateinamen einlesen.
strFileName = Dir()
Loop
' Unterverzeichnisse rekursiv durcharbeiten
For intCounter = 0 To intDirNr - 1
DirChange (StrNewDir & DirArray(intCounter) & "\")
Next intCounter
'Bildschirmaktualisierung wieder einschalten.
Application.ScreenUpdating = True
End Function

aber ich möchte gerne nicht nur die Dateien "Eigene Dateien" und *.xls auslesen, sondern auch die anderen Verzeichnisse und andere Datei Endungen. Aber leider sind meine VBA Kenntnisse immer noch gleich null und wenn ich etwas ändere geht gar nix mehr. Ich hatte vor die "xls" endungen in * zu ändern und ich glaub auch das eingestellte Verzeichnis irgendwie, aber wie?
Kann mir jemand helfen, bitte?
PS:
Und vielleicht weiß auch jemand ein gutes Buch mit dem ich lernen kann. Ich brauch eins, in dem der Autor nicht davon ausgeht ich versteh blah blah sofort (und davon gibt es viele und hab auch schon so eins), sondern etwas das mich mit vielen Beispielen die ich selber nachvollziehen kann an die Materie ranführt.(?)
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verzeichnisse und Unterverzeichnisse auslesen
23.07.2003 00:48:38
Nepumuk
Hallo Lydia,
deine Frage ist die breiteste die mir bisher begegnet ist. Aus deine Anfrage geht leider nicht hervor, welche Dateitypen du alles aufgelistet haben willst, deswegen mal alle des gewählten Verzeichnisses inklusive Unterverzeichnisse:

Option Explicit
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As InfoT) As Long
Private Declare Function CoTaskMemFree Lib "ole32" (ByVal hMem As Long) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpStr1 As String, ByVal lpStr2 As String) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pList As Long, ByVal lpBuffer As String) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassname As String, ByVal lpWindowName As String) As Long
Private Type InfoT
hwnd As Long
Root As Long
DisplayName As Long
Title As Long
Flags As Long
FName As Long
lParam As Long
Image As Long
End Type
Public Sub Dateiliste()
Dim index As Long
With Application.FileSearch
.LookIn = GetAOrdner
.FileType = msoFileTypeAllFiles
.SearchSubFolders = True
If .Execute > 0 Then
On Error Resume Next
For index = 1 To .FoundFiles.Count
Cells(index, 1) = .FoundFiles(index)
Next
End If
End With
End Sub
Private Function GetAOrdner() As String
Dim xl As InfoT, IDList As Long, RVal As Long, FolderName As String
With xl
.hwnd = FindWindow("xlmain", vbNullString)
.Title = lstrcat("Bitte wählen Sie ein Verzeichnis", "")
.Flags = 1
End With
IDList = SHBrowseForFolder(xl)
If IDList <> 0 Then
FolderName = Space(256)
RVal = SHGetPathFromIDList(IDList, FolderName)
CoTaskMemFree (IDList)
FolderName = Trim(FolderName)
FolderName = Left(FolderName, Len(FolderName) - 1)
End If
GetAOrdner = FolderName
End Function


Code eingefügt mit: Excel Code Jeanie
Mit Büchertipps halte ich mich als reinen Autodidakten zurück. Schau dich hier im Forum um und dieses ist beileibe nicht das einzige. Hier kannst du lernen ohne Ende.
Gruß
Nepumuk

Anzeige
AW: Verzeichnisse und Unterverzeichnisse auslesen
23.07.2003 08:01:00
Lydia
@Nepumuk (Du heißt wirklich so? cool)
Tausend Dank - freu - :-)))))
Es klappt super und ich bin begeistert. Hab es natürlich auch gleich getestet und hat funktioniert bis auf complett c: - hehe, hat mein Computer nicht so gut gefunden, aber ich muss ja auch nicht gleich übertreiben oder?
Aber: Zwei Fragen hätt ich noch -
1.) Wie kann ich die Dateien die ich dann ausgewählt und in einen Hyperlink umgewandelt habe, dazu bringen, dass man beim anklicken direkt auf die Datei gelangt? (Irgendwie lande ich nur in der in der obersten Zeile derselben Tabelle - oder hab ich nur was übersehen??)
2.) Geht es auch das die einzelnen Dateien in separaten Tabellenspalten (in der Zeile) angezeigt werden? (also nicht der ganze Text in einer Zelle - sondern ab / in der nächsten
Und hab heute morgen schon herzlich gelacht wegen: Quote: Hallo Lydia,
deine Frage ist die breiteste die mir bisher begegnet ist. Unquote
Hat etwas gedauert bis ich verstanden hab was du mit breiteste meinst. *giggle*
Aber du hast recht, weiß leider auch nicht was passiert ist. *noch mehr giggle + kicher*

Anzeige
AW: Verzeichnisse und Unterverzeichnisse auslesen
23.07.2003 09:23:07
Nepumuk
Hallo Lydia,
zu 1.
Die umwandlung in einen Hyperlink läßt sich per Programm erledigen. Aber dazu muss Punkt 2 genauer wissen.
zu 2.
Ab welchen Backslash soll der Ausgabestring getrennt werden? Nach dem Laufwerksbuchstaben oder vor dem Dateiname?
Die Auflistung von C funktionierte bei mir beim ersten mal auch nicht. Erst der zweit Versuch bracht das gewünschte? Ergebnis (44.648 Dateien).
Gruß
Nepumuk (Maximilian, Günther, Nepumuk, um genau zu sein)

Anzeige
AW: Verzeichnisse und Unterverzeichnisse auslesen
23.07.2003 09:33:54
Lydia
Hi Nepumuk :-)
also im Moment sieht es ja etwa so aus:
C:\\DateienEigeneEinstellung\lydia\infotestfolder\*.pdf
C:\\DateienEigeneEinstellung\lydia\infotestfolder\*.xls
C:\\DateienEigeneEinstellung\lydia\infotestfolder\*.doc
C:\\DateienEigeneEinstellung\lydia\infotestfolder\zusatzfolder\*.gif
C:\\DateienEigeneEinstellung\lydia\infotestfolder\zusatzfolder\*.jpg
C:\\DateienEigeneEinstellung\lydia\infotestfolder\zusatzfolder\*.doc
usw. usw. (hatte Datei schon zu und jetzt aus dem Kopf), also ich muss per Hyperlink auf die jeweilige Datei zugreifen können (also die mit dem *.doc,*.xls usw.(in Tabellenblatt 1))und wenn das geht dann auch noch die Dateien in anderem Tabellenblatt (Tabellenblatt2)also zweimal eingelesen) sortiert in Spalten nach jeweiligen /
Spalte A / Spalte B / Spalte C usw
DateienEigeneEinstellung / lydia / infotestfolder............usw.
Wenn das auch noch geht bin ich echt froh
Lieber Gruß an Maximilian, Günther, Nepumuk :-)

Anzeige
AW: Verzeichnisse und Unterverzeichnisse auslesen
23.07.2003 11:08:42
Nepumuk
Hallo Lydia,
Da sich gerade auf dem Laufwerk C sehr viele Dateien befinden die sowieso nicht geöffnet werden können, sollten wir uns auf die konzentrieren, die du überhaupt benötigst. Ich werden das über einen String prüfen, so dass Änderungen deinerseits relativ einfach sind. Ich müsste nur noch wissen, in welcher Tabelle (1 oder 2) der Hyperlink erstellt werden soll.
Das geänderte Ausgabeprogramm:

Public Sub Dateiliste()
Dim index1 As Long, index2 As Long, Dateiendung As String, Zeile As Long, Datei As String, Spalte As Integer
With Application
.Cursor = xlWait
.ScreenUpdating = False
End With
With Worksheets(1).Cells
.Clear
.NumberFormat = "@"
End With
With Worksheets(2).Cells
.Clear
.NumberFormat = "@"
End With
Zeile = 1
Dateiendung = ".xls.doc.mdb.jpg.bmp.gif.pps.wav.mp3.mpeg.avi" 'hier kannst du die benötigten Dateien wählen
With Application.FileSearch
.LookIn = GetAOrdner
.FileType = msoFileTypeAllFiles
.SearchSubFolders = True
If .Execute > 0 Then
On Error Resume Next
For index1 = 1 To .FoundFiles.Count
If InStr(1, LCase(Dateiendung), LCase(Right(.FoundFiles(index1), 4))) > 0 Or InStr(1, LCase(Dateiendung), LCase(Right(.FoundFiles(index1), 5))) > 0 Then
If Err.Number <> 0 Then GoTo weiter
Spalte = 1
Worksheets(1).Cells(Zeile, 1) = .FoundFiles(index1)
Datei = Mid(.FoundFiles(index1), 4)
Do
Worksheets(2).Cells(Zeile, Spalte) = Left(Datei, InStr(1, Datei, "\") - 1)
Datei = Mid(Datei, InStr(1, Datei, "\") + 1)
Spalte = Spalte + 1
If InStr(1, Datei, "\") = 0 Then Worksheets(2).Cells(Zeile, Spalte) = Datei
Loop Until InStr(1, Datei, "\") = 0
If Err.Number = 0 Then Zeile = Zeile + 1
End If
weiter:         Err.Clear
Next
End If
End With
Worksheets(1).Columns.AutoFit
Worksheets(2).Columns.AutoFit
With Application
.Cursor = xlDefault
.ScreenUpdating = True
End With
End Sub


Gruß
Nepumuk

Anzeige
AW: Verzeichnisse und Unterverzeichnisse auslesen
23.07.2003 19:46:24
Lydia
Hi
da hast du dir sehr viel Mühe gemacht - ich habs jetzt noch nicht ausprobiert - aber vielleicht frag ich auch erst besser - wennder Text rot ist muss dann dort was geändert werden, und was? (abgesehen von den Dateiendungen, da war ja eine Erklärung von Dir). Also die roten @ Zeichen und die roten "/" Zeichen.
in Tabelle 1 die Hyperlinks und in Tabelle 2 die eingelesenen Gesamt. Und füge ich das alles in ein normales Modul ein?
Geez, und das alles kann ich lernen? Welche Zeitspanne sollte ich da denn wohl mal einplanen? Bei mir auf der Arbeit denkt man, ich geh mal eben zu einem VHS Kurs (im Herbst) und schon ist die Sache gebongt, phewwwww *schwitz*
Weiss gar nicht wie ich dir danken soll - aber ich tu's @DANK an -NEPUMUK- *:-)*
Gruss Lydia

Anzeige
AW: Verzeichnisse und Unterverzeichnisse auslesen
23.07.2003 23:09:41
Nepumuk
Hallo Lydia,
dass mache Zeichen in Rot erscheinen liegt an meinem Syntaxhighlighter, bedeutet aber nichts anderes, als das es sich in der Darstellung um Zeichenketten (ersichtlich an den führenden und folgenden Anführungszeichen) handelt.
Das ganze kommt in ein normales Modul, wie du richtig vermutest.
Der Part mit den Hyperlinks kommt in das Klassenmodul der entsprechenden Tabelle.
Damit du auch etwas lernst dabei, will ich mal etwas weiter ausholen. Klassenmodule sind Module, die bestimmte, vordefinierte Ereignisse Klassen behandeln. Klassen sind Ereignisse von Objekten. Die oberste Klasse ist das Application-Object. Eine Application ist z.B. Word oder Excel oder Access aber ohne Inhalt (nicht zu verwechseln mit einer leeren Tabelle oder einem leeren Blatt in Word). Diese Objet hat verschiedene Eigenschaften, die du per Programm ändern kannst (z.B. die Visible-Eigenschaft). Ein Objekt kann sichtbar - Visible = True oder unsichtbar - Visible = False sein. Außerdem kannst du auf Objekte bestimmte Methoden anwenden z.B. die Quit-Methode die das Applications-Objekt schließt (Application.Quit). Des weiteren gibt es verschiedene Ereignisse für das Objekt (z.B. das New_Workbook-Ereignis, das in dem Moment eintritt, in dem du in Excel eine neue Mappe öffnest). Das nächst niedrigere Objekt in Excel ist das Workbook. Dann kommen Scheets und wenn ich jetzt nicht aufhöre, dann hättest du die nächsten drei Monate zu lesen.
Also, es geht um die Klasse Worksheets, die eine Tabelle darstellt. Du wirst auch der Klasse der Sheets begegnen, die aber alle Arten von Arbeitsblättern darstellt (Tabellen, Diagramme, Excel4.0-Makrovorlagen, Internationale Makrovorlagen sowie den Excel5.0-Dialog). Aber wir konzentrieren uns auf Tabellen. Wenn du im Projektexplorer (das ist das kleine Fenster links im VBA-Editor), auf, in unserm Fall Tabelle1, einen Doppelklick machst, wird ein leeres Editor-Fenser geöffnet. Das stellt das Klassenmodul der Tabelle dar. In diesem kannst du Ereignisse der Klasse Tabelle, aber nur dieser Tabelle, verarbeiten. Es gibt auch allgemeine Klassenmodule, in dem du Objekte deiner Wahl vereinen kannst, aber das ist dann 10.Klasse, wir sind noch in der Grundschule.
Die Klasse der Tabellen kennt verschiedene Ereignisse. Den Doppelklick, den Rechtsklick, das ändern einer Zelle, das wechseln von einer Zelle zur anderen um einige Beispiele zu nennen. Wir benutzen zum erstelle des Hyperlinks den Doppelklick. Und das geht so:

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ActiveSheet.Hyperlinks.Add Anchor:=Cells(Target.Row, 2), Address:=Cells(Target.Row, 1)
Cells(Target.Row + 1, 2).Select
Cancel = True
End Sub


Code eingefügt mit: Excel Code Jeanie
Wir wollen bei der ganzen Sache natürlich nicht übertreiben, deswegen erst mal große Pause und zu deiner Anfrage.
Zweifellos kannst du das alles lernen und wenn du nicht doof bist und davon gehe ich aus, da du sonst niemals den Weg hieher gefunden hättest, brauchst du sicher nicht länger wie ich (ich mache das seit ungefähr 6 oder 7 Jahren, gebe aber zu, vorher fast 20 Jahre in anderen Sprachen programmiert zu haben). Also die Rechnung deines Chefs, mit ein paar Wochen VHS wird wohl nicht ganz aufgehen. Ehrlich gesagt, wenn ich mir heute Programme ansehe die ich vor drei Jahren geschrieben habe, könnte ich mich kringeln vor lachen, über meinen damaligen Dilettantismus. Aber nur nicht den Mut verlieren, dafür opfern Leute wie ich und viele andere ihre Freizeit um mit viel Spaß an der Sache Menschen wie dir die Sache näher zu bringen.
Wenn du weiter Fragen hast, stehe ich dir, soweit es meine Zeit erlaubt, natürlich gerne zur Verfügung. Bedenke aber immer dabei, dass viele andere Leute auch viele Fragen haben und sie diese natürlich auch beantwotret haben wollen.
Liebe Grüße
Nepumuk

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Verzeichnisse und Unterverzeichnisse in Excel auslesen


Schritt-für-Schritt-Anleitung

Um mit Excel VBA Verzeichnisse und Unterverzeichnisse auszulesen, kannst du die folgenden Schritte befolgen:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Neues Modul erstellen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Code einfügen: Füge den folgenden Code in das Modul ein, um die Verzeichnisse und Dateien auszulesen:
Option Explicit

Dim StrNewDir As String

Public Type BROWSEINFO
    hOwner As Long
    pidlRoot As Long
    pszDisplayName As String
    lpszTitle As String
    ulFlags As Long
    lpfn As Long
    lParam As Long
    iImage As Long
End Type

Declare Function SHGetPathFromIDList Lib "shell32.dll" _
    Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
    Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Function GetDirectory(Optional msg) As String
    Dim bInfo As BROWSEINFO
    Dim Path As String
    Dim r As Long, x As Long, pos As Integer
    bInfo.pidlRoot = 0&
    If IsMissing(msg) Then
        bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus."
    Else
        bInfo.lpszTitle = msg
    End If
    bInfo.ulFlags = &H1
    x = SHBrowseForFolder(bInfo)
    Path = Space$(512)
    r = SHGetPathFromIDList(ByVal x, ByVal Path)
    If r Then
        pos = InStr(Path, Chr$(0))
        GetDirectory = Left(Path, pos - 1)
    Else
        GetDirectory = ""
    End If
End Function

Sub DirImport()
    Application.ScreenUpdating = False
    StrNewDir = GetDirectory("Wählen Sie bitte einen Ordner aus:")
    If StrNewDir = "" Then Exit Sub
    If Right(StrNewDir, 1) <> "\" Then
        StrNewDir = StrNewDir & "\"
    End If
    Call DirChange(StrNewDir)
    Application.ScreenUpdating = True
End Sub

Function DirChange(Optional StrNewDir As String)
    Dim rngCell As Range
    Dim FileArray() As String, DirArray() As String
    Dim strFileName As String
    Dim intCounter As Integer, intDirNr As Integer

    Application.ScreenUpdating = False
    strFileName = Dir(StrNewDir, vbNormal)

    Do While strFileName <> ""
        If GetAttr(StrNewDir & strFileName) <> vbDirectory Then
            ThisWorkbook.Worksheets("Tabelle1").Range("A" & Range("A65536").End(xlUp).Row + 1) = StrNewDir & strFileName
        Else
            DirArray(intDirNr) = strFileName
            intDirNr = intDirNr + 1
        End If
        strFileName = Dir()
    Loop

    For intCounter = 0 To intDirNr - 1
        DirChange (StrNewDir & DirArray(intCounter) & "\")
    Next intCounter

    Application.ScreenUpdating = True
End Function
  1. Makro ausführen: Schließe den VBA-Editor und führe das Makro DirImport aus, um die Dateien auszulesen.

Häufige Fehler und Lösungen

  • Fehler bei der Pfadauswahl: Stelle sicher, dass du einen gültigen Ordner auswählst. Wenn der Pfad leer bleibt, wird das Makro nicht ausgeführt.
  • Zugriffsprobleme: Wenn du auf bestimmte Ordner nicht zugreifen kannst, kann es an fehlenden Berechtigungen liegen. Überprüfe die Zugriffsrechte auf den entsprechenden Ordner.

Alternative Methoden

Eine alternative Methode, um die Ordnerstruktur auszulesen, besteht darin, die FileSystemObject-Bibliothek zu verwenden. Hier ist ein Beispiel:

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim folder As Object
Set folder = fso.GetFolder("C:\DeinOrdner")

Dim subfolder As Object
For Each subfolder In folder.Subfolders
    Debug.Print subfolder.Name
Next subfolder

Diese Methode ermöglicht es dir, auf Unterordner zuzugreifen, ohne die Windows-API verwenden zu müssen.


Praktische Beispiele

  1. Alle Dateien in einem bestimmten Ordner auflisten: Mit dem obigen Makro kannst du alle Dateien eines spezifischen Ordners auslesen, indem du einfach den gewünschten Ordner auswählst.
  2. Dateien nach Typ filtern: Du kannst den Code anpassen, um nur bestimmte Dateitypen auszulesen, indem du die Bedingung für die Dateiendung änderst:
If Right(strFileName, 4) = ".pdf" Then
    ' PDF-Datei in die Liste einfügen
End If

Tipps für Profis

  • Verwende Fehlerbehandlung: Implementiere einen Fehlerbehandlungsmechanismus, um Laufzeitfehler zu vermeiden.
  • Optimierung der Performance: Reduziere die Anzahl der Bildschirmaktualisierungen während der Ausführung des Makros, um die Geschwindigkeit zu erhöhen.
  • Benutzerfreundlichkeit: Füge eine Benutzeroberfläche hinzu, um die Ordnerauswahl zu erleichtern.

FAQ: Häufige Fragen

1. Frage
Wie kann ich die ausgegebenen Dateinamen in Hyperlinks umwandeln?
Antwort: Du kannst den Code anpassen, um beim Einfügen der Dateinamen Hyperlinks zu erstellen, indem du die Hyperlinks.Add-Methode verwendest.

2. Frage
Kann ich die Ausgabe in mehreren Spalten organisieren?
Antwort: Ja, du kannst den Code so anpassen, dass die Dateinamen in separaten Spalten statt in einer einzigen Spalte ausgegeben werden.

3. Frage
Wie kann ich die Ordnerstruktur auslesen?
Antwort: Verwende die Funktion DirChange, um rekursiv alle Unterverzeichnisse und Dateien auszulesen.

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