AW: Ordner auslesen und Hyperlinks erstellen
22.01.2019 23:25:00
Piet
Hallo
MaBlu
ich poste die mal den ganzen Code, ist sicherer, brauchst du nur auswechseln
mfg Piet
'dieses Programm ruft sich selbst auf !! (bis Directory Ende)
Sub Dateisuche2(Laufwerk, Dateien)
Dim MB, temp, wdhlg, Ordner As String
On Error GoTo fehler
If Right(Laufwerk, 1) "\" Then Laufwerk = Laufwerk + "\"
temp = Dir(Laufwerk & Dateien)
z = z + 2 'von mir eingefügt !!
n = z - 1 'Anf-Adresse retten (neue Zeile für Ordner)
d = 0 'Datei löschen
Application.StatusBar = f & " " & Laufwerk
Application.ScreenUpdating = False
Do While Len(temp)
'Hyperlink in Spalte C oder D einfügen!! C=3, D=4
ActiveSheet.Hyperlinks.Add Anchor:=Cells(z, 4), Address:=Laufwerk & temp
Cells(z, 3) = Space(3) & temp 'nur Datei, ohne Ordnername
Cells(z, 5) = FileLen(Laufwerk & temp)
Cells(z, 6) = FileDateTime(Laufwerk & temp)
If InStr(temp, ".") Then temp = Right(temp, 6) Else temp = Empty
Cells(z, 4) = Right(temp, Len(temp) - InStrRev(temp, "."))
MB = MB + Cells(z, 5)
z = z + 1
d = d + 1 'Anzahl Datei
nx: temp = Dir()
Loop
'If d = 0 Then z = z - 2: GoTo noli
'Summen: Dateien, Null Ordner + gByt addieren
f = f + d: gMB = gMB + MB
'neue Zeile für Ordner
If Len(Ordner) ".") And (temp "..") Then
If (GetAttr(Laufwerk & temp) And vbDirectory) = vbDirectory Then
If InStr(LCase(temp), "-dateien") Or _
InStr(LCase(temp), "-dates") Or _
InStr(LCase(temp), "_files") Or _
InStr(LCase(temp), "\files") Then _
If HTLM = "Ja" Then ht = ht + 1: GoTo ny
Dateisuche2 Laufwerk & temp, Dateien
o = o + 1 'Anzahl Ordner
wdhlg = Dir(Laufwerk, vbDirectory)
'ohne Wdhlg endlose Wiederholung !!
Do While wdhlg temp
wdhlg = Dir()
Loop
ny: End If
End If
temp = Dir()
Loop
On Error GoTo 0
Application.StatusBar = False
Exit Sub
fehler: 'Ende bei Datei Error (s.97)
If d + f + o = 0 Then [c3] = Error(): Exit Sub
If Cells(z, 7) = "" Then fe = fe + 1
Cells(z, 7) = Error(): [c3] = fe & " Fehler"
Resume Next
End Sub