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

Unterordner durchsuchen

Forumthread: Unterordner durchsuchen

Unterordner durchsuchen
03.01.2021 17:52:29
Michael
Hallo und frohes neues,
mit u,g. Code werden Daten aus Zellen mit PDF -Dateien auf dem Server verglichen und verlinkt.
Dies funktioniert schon sehr gut , aber es wird nur der ausgewählte Ordner durchsucht und verlinkt.
Es werden immer mehr Aufträge nach Maschinen und Datum in vielen Unterordnern gespeichert. Da ich alle 2 -3 Wochen die Daten verlinke muss jeden einzelnen Ordner auswählen, es Nervt und kostet Zeit.
Wie kann ich es realisieren dass, auch die Unterordner durchsucht werden ?
Danke vorab für Eure Hilfe.
Sub Verlinken()
Dim L As Long
Dim cnt As Long
Dim lngLRow As Long
Dim strOrdner As String
Dim passwd As String
passwd = InputBox("Bitte Passwort eingeben.")
If passwd  "123" Then
MsgBox "Falsches Passwort", vbCritical, "Falsches Passwort"
Exit Sub
End If
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = "X:\B\Produktion\Archiv\Test\2020"
.Title = "Ordner auswählen..."
.ButtonName = "Auswahl"
.InitialView = msoFileDialogViewList
If .Show = -1 Then
strOrdner = .SelectedItems(1)
If Right(strOrdner, 1)  "\" Then strOrdner = strOrdner & "\"
Else
strOrdner = ""
End If
End With
If strOrdner = "" Then
MsgBox "Abbruch durch Benutzer (Kein Ordner ausgewählt)"
Exit Sub
End If
lngLRow = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row
cnt = 0
If lngLRow  "" Then
.Hyperlinks.Add anchor:=.Range("E" & L), Address:=strOrdner & "\" & .Range("E" & L). _
_
_
Value & ".pdf"
cnt = cnt + 1
End If
Next
End With
Sheets("MF_Buch").Protect Password:="123"
MsgBox "Bei " & cnt & " von " & L - 10 & " Auftragsnummern wurde ein PDF Dokument verlinkt"
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unterordner durchsuchen
03.01.2021 18:12:49
Hajo_Zi
http://hajo-excel.de/gepackt/vba2007/ordner_auslesen_hyperlink2007.zip
Falls Link nicht ausgeführt wird:
1. Link kopieren
2. rechte Maustaste neues Fenter.
3. Umschaltstaste drücken und Klick auf den Link
4. STRG+ Link mit Maus aktivieren

Anzeige
AW: Unterordner durchsuchen
03.01.2021 18:45:54
Michael
Hallo Hajo
zunächst Danke Dir für den Vorschlag, aber wenn ich ehrlich sein soll , kann ich nichts mit anfangen.
Noch habe ich zu wenig VBA-Kenntnisse um dein Makro auf meine Bedürfnisse anpassen zu können.
In meinem Makro wird die Spalte E nach Daten ( Zahlen ) zb: 1234 mit gleichnamigen PDF-Dateien zb: 1234.pdf in Ordnern gesucht und wenn Treffer verlinkt.
Wie vorhin geschrieben soweit funktioniert gut nur die Unterordner werden nicht durchsucht.
Ich muss jedes Mal das Makro neu starten und jeden einzelnen Ordner auswählen
Anzeige
AW: Unterordner durchsuchen
03.01.2021 18:46:20
Nepumuk
Hallo Michael,
teste mal:
Option Explicit

Sub Verlinken()
    Dim L As Long
    Dim cnt As Long
    Dim lngLRow As Long
    Dim strOrdner As String
    Dim astrFolders() As String
    Dim ialngFolders As Long
    
    If InputBox("Bitte Passwort eingeben.") <> "123" Then
        
        MsgBox "Falsches Passwort", vbCritical, "Falsches Passwort"
        Exit Sub
        
    End If
    
    With Application.FileDialog(msoFileDialogFolderPicker)
        
        .InitialFileName = "X:\B\Produktion\Archiv\Test\2020"
        .Title = "Ordner auswählen..."
        .ButtonName = "Auswahl"
        .InitialView = msoFileDialogViewList
        If .Show Then strOrdner = .SelectedItems(1) & "\"
        
    End With
    If strOrdner = "" Then
        
        MsgBox "Abbruch durch Benutzer (Kein Ordner ausgewählt)"
        Exit Sub
        
    End If
    
    lngLRow = Cells(Rows.Count, 5).End(xlUp).Row
    
    If lngLRow < 10 Then
        
        MsgBox "Abbruch durch Benutzer (Keine Auftragsnummern in Spalte E)"
        Exit Sub
        
    End If
    
    astrFolders = GetFolders(strOrdner)
    
    With ActiveSheet
        
        Sheets("MF_Buch").Unprotect Password:="123"
        
        For L = 10 To lngLRow
            
            For ialngFolders = LBound(astrFolders) To UBound(astrFolders)
                
                If Dir(astrFolders(ialngFolders) & .Range("E" & L).Value & ".pdf") <> "" Then
                    
                    .Hyperlinks.Add Anchor:=.Range("E" & L), _
                        Address:=astrFolders(ialngFolders) & .Range("E" & L).Value & ".pdf"
                    
                    cnt = cnt + 1
                    
                    Exit For
                    
                End If
            Next
        Next
    End With
    
    Sheets("MF_Buch").Protect Password:="123"
    
    MsgBox "Bei " & cnt & " von " & L - 10 & " Auftragsnummern wurde ein PDF Dokument verlinkt"
    
End Sub

Private Function GetFolders(ByVal pvstrPath As String) As String()
    Dim astrFolders() As String
    Dim strFolder As String, strPath As String
    Dim ialngIndex1 As Long, ialngIndex2 As Long
    Redim Preserve astrFolders(ialngIndex1)
    astrFolders(ialngIndex1) = pvstrPath
    ialngIndex1 = 1
    ialngIndex2 = 1
    strPath = pvstrPath
    Do
        strFolder = Dir$(PathName:=strPath & "*", Attributes:=vbDirectory)
        Do Until strFolder = vbNullString
            If strFolder <> "." And strFolder <> ".." Then
                If GetAttr(PathName:=strPath & strFolder) And vbDirectory Then
                    Redim Preserve astrFolders(0 To ialngIndex1)
                    astrFolders(ialngIndex1) = strPath & strFolder & "\"
                    ialngIndex1 = ialngIndex1 + 1
                End If
            End If
            strFolder = Dir$
        Loop
        If ialngIndex1 = ialngIndex2 Then Exit Do
        strPath = astrFolders(ialngIndex2)
        ialngIndex2 = ialngIndex2 + 1
    Loop
    GetFolders = astrFolders
End Function

Gruß
Nepumuk
Anzeige
AW: Unterordner durchsuchen
03.01.2021 19:19:38
Michael
Besten Dank Nepumuk, funktioniert einwandfrei.
;

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