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

Ordner auslesen und Hyperlinks erstellen

Ordner auslesen und Hyperlinks erstellen
19.01.2019 18:17:33
MaBlu
Hallo zusammen
ich habe eine Datei die mir das Auflistet, wenn ich Ordner auf der Festplatte habe mit mehreren Unterordnern geht das einwandfrei, wenn ich aber einfach nur C: die Festplatte wähle bleibt das Makro stehen weis jemand warum und was man tun könnte?
Die Datei ist von Bert Körn? Aus dem Internet geladen.
Fehler:
Laufzeitfehler '52'
Dateiname oder -nummer falsch
danach kann ich nur debuggen
im Makro bleibt beim Satz stehen.
Name1 = Dir(Pfad1, vbDirectory) ' Ersten Eintrag abrufen.
Auf der 2. Seite Dateien 1 wird in der ersten Zeile nichts eingetrage dort möchte ich die Bezeichnung einbringen, wenn ich das reinschreibe wird das beim nächsten Suchlauf gelöscht?
https://www.herber.de/bbs/user/126934.zip
Für eure Hilfe bedanke ich mich herzlich!

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordner auslesen und Hyperlinks erstellen
19.01.2019 19:17:56
MaBlu
Hallo Hajo
ein tolles Tool, aber wenn ich hier die selbe Auswahl mach habe ich ähnliche Probleme
ich habe gewählt:
Unterverzeichnisse
Dateiname schreiben
Hyperlink auf Datei
Anzeige dateiname + Pfad
Dateiname + pad in eine Zelle
alle dateien *
dann kommt schell der Fehler zugriff verweigert '70'
For Each FD In EachFold
warum das?
Gruss MaBlu
Anzeige
AW: Ordner auslesen und Hyperlinks erstellen
19.01.2019 19:30:29
Hajo_Zi
ich würde vermuten Du wilsdt eine Ordner auslesen auf den Du keinen Zugriff hast. Das kann ich nicht testen, da ich so was nicht habe.
Gruß Hajo
AW: Ordner auslesen und Hyperlinks erstellen
19.01.2019 21:18:25
Luschi
Hallo Mablu,
wenn ich versuche, im Explorer auf ein Verzeichnis ohne Berechtigung zuzugreifen, kommt die folgende Fehlermeldung (siehe Bildchen).
Und genauso geht es Vba mit den eingeschränkten Rechten Deines User-Accounts; selbst als Admin kannst Du nicht alles machen - dazu braucht einen Super-Accouunt!
Userbild
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Ordner auslesen und Hyperlinks erstellen
20.01.2019 13:31:16
MaBlu
Hallo
ich kann fast nicht glauben dass es das ist da der PC ja mir gehört, und ich auf D nur Daten habe?
Gibt es eine Möglichkeit im makro eine Routine einzubauen das mir die Meldung ausgibt bei was er stecken bleibt?
Schönen Sonntag
Gruss MaBlu
AW: Ordner auslesen und Hyperlinks erstellen
20.01.2019 17:37:36
Piet
Hallo Mablu
gratuliere, jetzt hast du viele technische Erklaerungen, die technisch einwandfrei sind! Lösen sie dein Problem?
Als alter Praktiker habe ich mich selbst mit dem Problem Ordner auflisten herumgeschlagen.
Meine Antwort:
das ganze Laufwerk C auflisten macht wenig Sinn, weil du 80 % "Datenmüll" auflistet!!
Das sind alles Systemdateien, Programme mit Unter-Ordner, die dich sicher nicht interessieren, oder irre ich mich da?
Die internen Dateien können locker über 100.000 sein, die für dich wichtigen Dateien sind vielleicht nur 1-2000 Stück
Was machst du mit dem Rest, willst du da überall Hyperlinks einbauen.- Dann viel Spass ... beim testen
Ich kenne Codes von Nepumuk, Hajo und vielen anderen. Die listen sturheil alles auf, jeden Pipifacks, egal ab das "weh tut"
Mein eigenes Programm, Uralt, noch Reversive, listet auf Wunsch z.B. alle HTML Dateien nur als Ordner auf, KEINE Inhalte!!.
Tauch bitte mal im Intenet, mein Programm ist ein Unikat, du findest es nirgendwo. Ich habe mehrer Auflist Versionen, überspringe auch Ordner mit einer "No Liste", wo ich dem Makro gezielt sagen kann ob ein kompletter Ordner gelistet werden soll oder nicht.
Ich schaue mir jezt mal deine Beispieldatei an. Und noch ein Vorteil der alten Excel 97 Progarmmierung.
Stürzt mein Programm ab, sehe ich wo er haengen bleibt, weil ich NICHT über Array aufliste,sondern jede Zeile direkt in die Tabelle schreibe. Dann siehtst du genau welche Datei den Absturz verursacht hat. Das gibt es bei mir auch mal. Dann setze ich ins Makro den Befehl: - überspringe genau diesen Ordner oder Datei!
Oft sind es interne System Dateien die du nicht im Explorer sieht wie: "System Volume Information oder "$RECEYCLING".
Da haengt Excel sich gerne auf. Beim Array findest du solche Fehler nie. Man sieht ja nicht wo Excel sich aufhaengt.
mfg Piet
Anzeige
AW: Ordner auslesen und Hyperlinks erstellen
20.01.2019 21:48:10
MaBlu
Hallo Piet
nein du hast schon recht ich möchte nicht alles verlinken aber ich kann ja nicht sagen nur diese zB. 6 Ordner mit .jpg, .xlsx . xlsm usw. darum wollte ich alles auflisten und dann das nicht gebrauchte weglöschen.
Ich bin gespannt was denn bei mir den Absturz verursacht.
Gerne nehme ich deine "alte Liste" zum rausfinden wo es klemmt.
Gruss MaBlu
AW: Ordner auslesen und Hyperlinks erstellen
20.01.2019 23:06:07
MaBlu
Hallo
ich glaube es könnte die Datei $RECYCLE.BIN sein wie könnte man diese ausschliessen?
Gruss MaBlu
AW: Ordner auslesen und Hyperlinks erstellen
21.01.2019 18:35:41
Piet
Hallo MaBlu
ich hatte schon oft Aerger mit dem Ordner den du benennst, dann gibt es noch "RECEYCLING" und "System Volume Information". Manche werden im Explorer nicht angezeigt. Ich habe dir mal zwei Sprungbefehle mit IF Instr() eingebaut. Teste es bitte mal damit.
Anbei noch eine uralte Datei von 1994 aus dem Internet. Sie funktioniert immer noch, und ist deiner Mappe beim auflisten eines LW zeitlich bestimmt haushoch überlegen. Das trotz Asbach uralter Reverse Technik aus Excel 97 Zeit. Da muss man sich echt wundern. Vor allem kann ich im Makro einstellen ob ich HTML Ordner als Ordner oder jedes einzelne Blatt auflisten will. - (Unnötiger Müll!!)
Schau dir mal den Unterschied in Tabelle1 und Tabelle2 bitte selbst an, und achte auf die benötigte Zeiten.
Die Aufmachung wie ich Ordner aufliste ist nicht Standard wie die Kollegen es machen. Mir gefiel diese Art optisch besser, denn das Internet Original machte es wie gehabt. Der Vorteil: - diese alte Kamelle kann jeder der VBA Kenntnisee hat verstehen, und nach belieben umschrieben. Für Hyperlink muss man den Code erweitern, das ist aber kein grosses Problem.
Bei Fehler verschluckt es sich schon mal und listet nicht mehr sauber auf. Den Fehler habe ich noch nicht gefunden.
Für einfache User Anwendungen ist dieser Code trotz seines Alters gut zu gebrauchen.
mfg Piet
    Do While TB1.Cells(Rows.Count, 1).End(xlUp).Row  TB1.Cells(Rows.Count, 2).End(xlUp).Row
For X2 = X0 To X1
Pfad1 = TB1.Cells(X2, 1)  ' Pfad setzen.
If Right(Pfad1, 1)  "\" Then Pfad1 = Pfad1 & "\"
Name1 = Dir(Pfad1, vbDirectory) ' Ersten Eintrag abrufen.
Verz = 0
Do While Name1  "" ' Schleife beginnen.
If InStr(Name1, "RECYCL") Then GoTo nx
If InStr(Name1, "System Volume") Then GoTo nx
' Aktuelles und übergeordnetes Verzeichnis ignorieren.
If Name1  "." And Name1  ".." Then
' Mit bit-weisem Vergleich sicherstellen, daß Name1 ein
' Verzeichnis ist.
If (GetAttr(Pfad1 & Name1) And vbDirectory) = vbDirectory Then
Anzahl = Anzahl + 1
TB1.Cells(Anzahl, 1) = Pfad1 & Name1 & "\"
Verz = Verz + 1
'Eintrag nur anzeigen, wenn es sich um ein Verzeichnis handelt.
End If
nx:     End If
Name1 = Dir ' Nächsten Eintrag abrufen.
Loop
TB1.Cells(X2, 2) = Verz
Next X2
X0 = X1 + 1
X1 = X2
Loop
https://www.herber.de/bbs/user/126983.xlsm
Anzeige
AW: Ordner auslesen und Hyperlinks erstellen
22.01.2019 15:34:04
MaBlu
Hallo Piet
deine Tabelle läuft ja wunderbar!
Mir fehlt lediglich der Link auf die Tabelle, aber ich weiss nicht wie einpflegen
was muss ich wo tun ?
Gruss MaBlu
AW: Ordner auslesen und Hyperlinks erstellen
22.01.2019 18:22:54
Piet
Hallo
mich freut das dir dieses alte Programm gefaellt. Einen Link einbauen ist sehr einfach. Im 2. Makro den Teil - Hyperlink einfügen
Du kannst selbst ausprobieren ob du den Hyperlink in Spalte C oder D haben willst, beides funktioniert!
Anchor:=Cells(z, 3) - oder Anchor:=Cells(z, 4) - jetzt eingestellt auf Hyperlink in Spalte D, für Datei Typ (Endung!)
mfg Piet
Sub Dateisuche2(Laufwerk, Dateien)
'.........  ab hier!
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

Anzeige
AW: Ordner auslesen und Hyperlinks erstellen
22.01.2019 18:37:39
MaBlu
Hallo Piet
ich habe das nach Anweisung gemacht aber das Makro bleibt stehen bei
Do While Len(temp) auf temp?
'dieses Programm ruft sich selbst auf !! (bis Directory Ende)
Sub Dateisuche2(Laufwerk, Dateien)
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
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
If InStr(Laufwerk, ":\Chip") = 0 Then
Do While Len(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
End If
Anzeige
AW: Ordner auslesen und Hyperlinks erstellen
22.01.2019 23:19:55
Piet
Hallo Mablu
Sorry, da habe ich die Sache vielleicht etwas unglücklich erklaert. - Sub Dateisuche2(Laufwerk, Dateien)
habe ich nur geschrieben damit du weist in welchem Makro du etwas aendern musst!
Nach Sub Dateisuche müssen alle Befehle erhalten bleiben bis du den Befehl Do While Len(temp) siehtst!
Da setzt du hinter Do While Len(temp) - und vor Cells(z, 3) = Space(3) diesen Befehl ein:
'Hyperlink in Spalte C oder D einfügen!! C=3, D=4 (ist nur Kommentar!)
ActiveSheet.Hyperlinks.Add Anchor:=Cells(z, 4), Address:=Laufwerk & temp
Alle anderen Befehle müssen zwichen Sub und vor Do While in ihrer bisherigen Reihenfolge erhalten bleiben!!
Dasselbe gilt für die zweite Do Schleife wenn man Ordner überspringen will. - wie hier beschrieben einfügen!!
Do While Len(temp)
If InStr(temp, "RECEYCLING") Then GoTo ny 'System Ordner von Micosoft
If InStr(temp, "System Volumne") Then GoTo ny 'System Volume Information
dann sollte es fehlerfrei klappen.
mfg Piet
Anzeige
AW: Ordner auslesen und Hyperlinks erstellen
22.01.2019 18:35:51
Piet
Nachtrag
mir ist gerade noch ein Hinweis eingefallen um -Unerwünschte Ordner- zu überspringen - in diesem Teil:
Dort hatte ich mir auch mal eine For Next Schleife eingebaut um Ordner die in Spalte K mit "No" markiert waren zu überspringen.
Dieses alte Programm ist sehr idiotensicher, das kann man nach belieben umstricken! - Alte Technik, aber zuverlaessig.
noli: temp = Dir(Laufwerk, vbDirectory)
If unterordner = vbNo Then temp = ""
Do While Len(temp)
'** es gibt eine Variante wo ich hier Ordner in Spalte L prüfe
'und überspringe wenn in Spalte K ein "No" für -No List- steht
If InStr(temp, "RECEYCLING") Then GoTo ny       'System Ordner von Micosoft
If InStr(temp, "System Volumne") Then GoTo ny   'System Volume Information

Anzeige
AW: Ordner auslesen und Hyperlinks erstellen
22.01.2019 19:15:11
MaBlu
Hallo Piet
du hattest Recht, fast jeder kann das und siehe da ich habs geschafft, hatte es vorher am falschen Platz eingesetzt nach nochmaligen studieren hab ichs rausgefunden und es läuft!
Vielen lieben dank
schönen Abend und Gruss MaBlu
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

Anzeige
AW: Ordner auslesen und Hyperlinks erstellen
23.01.2019 21:14:31
MaBlu
Hallo Piet
vielen Dank hat Wunderbar geklappt.
Gruss MaBlu

30 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige