Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1632to1636
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
Ordnerverzeichnis durchsuchen und ausgeben
13.07.2018 06:35:30
Andreas
Hallo Excel liebe Freunde,
ich möchte aus den Windows-Verzeichnissen und Unterverzeichnissen nur Pfade in Excel übernehmen welche mit einem Such-Wort übereinstimmen.
Input: Aktualisieren
Input: Such-Wort: Anweisung
Ausgabe in der Exceldatei:
C:\\neuer Ordner\Dienstanweisung\Anweisung zur Küchennutzung.pdf
C:\\alter Ordner\Aufgaben\Mitteilungen\Dienstanweisung zum Reinigen.dok
I:\... Mitarbeiteranweisungen.xlsx
Später werde ich diese Ausgabe dann in einem neuen Blatt verarbeiten, mit Kommentaren, Kategorien und mit einem Link zum Ansehen versehen.
Es soll also eine Art Übersicht über alle Anweisungen werden, welche sich auch aktualisieren lassen sollen, da manchmal einige dazukommen.
Denke, dass diese mit einem Makro zu lösen ist. Einige erste Ansätze habe ich bereits gegoogelt und ausprobiert, komme jedoch nicht wirklich zum Erfolg und würde gern um eure Hilfe bitten.
LG
Andreas

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordnerverzeichnis durchsuchen und ausgeben
13.07.2018 08:08:20
JoWE
Hallo Andreas,
vllt. so, Der Code stammt von Ramses aus 2004 'glaub' ich'.
Das Makro fragt nach dem zu durchsuchenden Ordner:
Option explicit
'Dieser Bereich kann entfallen, wenn der Variable 'Laufwerk' ein fester Wert zugewiesen wird.#
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
Private z!
'Ruft das Dialogfeld zur Ordnerauswahl auf
Function GetDirectory(Msg) As String
Dim bInfo As BROWSEINFO
Dim Path As String
Dim r As Long, x As Long, pos As Integer
With bInfo
.pidlRoot = 0&
.lpszTitle = Msg
.ulFlags = &H1
End With
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 Dateisuche(Laufwerk, Dateien)
Dim tmp, Wdhlg, Dateiname As String
On Error Resume Next
If Right(Laufwerk, 1)  "\" Then Laufwerk = Laufwerk + "\"
tmp = Dir(Laufwerk & Dateien)
Cells(5, 1).Value = "Pfad"
Cells(5, 2).Value = "Dateiname"
Cells(5, 3).Value = "Größe"
Cells(5, 4).Value = "Dateidatum"
Range(Cells(5, 1), Cells(5, 4)).Font.Bold = True
Columns("3:3").NumberFormat = "0"
Do While Len(tmp)
Dateiname = Laufwerk & tmp
Application.StatusBar = Dateiname
Cells(z, 1).Select
Cells(z, 1) = Laufwerk
Cells(z, 2) = tmp
Cells(z, 3) = FileLen(Laufwerk & tmp)
Cells(z, 4) = FileDateTime(Laufwerk & tmp)
z = z + 1
tmp = Dir()
Loop
tmp = Dir(Laufwerk, vbDirectory)
Do While Len(tmp)
If (tmp  ".") And (tmp  "..") Then
If (GetAttr(Laufwerk & tmp) And vbDirectory) = vbDirectory Then
Dateisuche Laufwerk & tmp, Dateien
z = z - 1
Wdhlg = Dir(Laufwerk, vbDirectory)
z = z + 1
Do While Wdhlg  tmp
Wdhlg = Dir()
Loop
End If
End If
tmp = Dir()
Loop
On Error GoTo 0
Cells.EntireColumn.AutoFit
Application.StatusBar = False
End Sub
'Aufruf mit dem folgenden Makro
Sub Dateien_auflisten()
Dim Laufwerk$, Dateien$
'Erste Zeile, in der eine Eintragung erfolgt
z = 6
'Alte Eintragungen löschen
Cells.Clear
'Den Variablen Laufwerk und Dateien kann auch ein direkter Wert zugewiesen werden.
Laufwerk = GetDirectory("Bitte einen Ordner wählen") 'Ersatz: ... = "C:\Eigene Dateien"
If Laufwerk = "" Then Exit Sub
'Ersatz: Dateien = "*.*"
Dateien = InputBox("Nach welchen Dateien soll in" & Chr(10) & " " & _
Laufwerk & Chr(10) & "gesucht werden (z. B. *.xls)?", "Dateityp", "*.*")
If Dateien = "" Then Exit Sub
Dateisuche Laufwerk, Dateien
End Sub
Gruß
Jochen
Anzeige
AW: "Gute" alte Zeit
13.07.2018 09:42:07
Fennek
Hallo,
am Anfang des Jahrtausends waren die Leute noch gut und kannten sich mit API's aus. Heute geht es etwas degeneriert zu mit dem Rückblick in die Steinzeit:

cmd:>dir /s/ad/b
mfg
genialer Tipp
13.07.2018 10:12:24
Oberschlumpf
Hi
mit dem Befehl müsste ja in Zukunft die leidige rekursive Datei/Verzeichnis-Suche in Verzeichnissen mit UnterVerzeichnissen mit UnterUnterVerzeichnissen usw... entfallen.
Einfach mit dem DIR-Befehl alle Ergebnisse in eine txt-Datei umleiten + dann die txt-Datei mit VBA Zeile für Zeile abarbeiten.
Ich sehe schon leuchtende + glitzernde Sterne am VBA-Himmel :-))))
Ciao
Thorsten
Anzeige
AW: Ja, oder nur VBA
13.07.2018 10:24:48
Fennek
für diejenigen, die den Umweg über das CMD-Fenster zu weit ist, es geht auch mit createobject("wscript.shell").excec direkt in VBA.
AW: Ja, oder nur VBA
13.07.2018 10:45:51
Rob
Maaan, seid ihr Nerds! Könnt ihr mal übersetzen was ihr damit sagen wollt? LOL!
Zur Frage; mit Scripting.FileSystemObject aus dem Verweis Microsoft Scripting Runtime + Dir-Funktion lassen sich Verzeichnisse sehr schön durchsuchen. Wurde wohl 100.000x gelöst. Einfach mal googeln.
AW: Ja, oder nur VBA
13.07.2018 10:54:56
Oberschlumpf
Zitat: Einfach mal googeln
Maaan, bist du von oben herab!
Ja, sicher, ich weiß auch, dass viele, gleiche Fragen schon x mal gestellt wurden - obwohl! es eben genau dafür schon Lösungen gibt.
Und trotzdem! Genau die gleichen Fragen werden wieder gestellt...und wieder...und wieder^^
Ich find den Tipp mit dir /s/ad/b klasse :-)
Anzeige
AW: Ja, oder nur VBA
13.07.2018 11:48:28
Rob
Zitat: "Ich find den Tipp mit dir /s/ad/b klasse :-)"
HHHHnnngngnngnghaaaahnnnn
AW: genialer Tipp? kommt mir sehr bekannt vor
13.07.2018 17:41:46
Oberschlumpf
Hi Anton,
danke.
Aber...ähh?..ich bin verwirrt.
Ich find den Tipp noch immer genial, weil: so einfach, so schnell, so kurz!
Mir war/ist egal, wer das "erfunden" hat, ich hatte mich nur über den Tipp gefreut.
Ciao
Thorsten
den Tipp hast Du doch damals erhalten...
15.07.2018 07:21:43
robert
..und jetzt tust Du so, als ob es was Neues wäre....
Gruß
robert
Anzeige
ach soooo
15.07.2018 08:37:04
Oberschlumpf
Hi robert,
auch wenn ich deinen Vorwurf (jetzt tust du so..usw) nich nachvollziehen kann^^, denn auch "Bekanntes" kann man doch wieder vergessen^^, hast du zumindest geholfen, meine Verwirrung, durch Anton ausgelöst, teilweise zu lösen.
Ich hatte nur den Text gelesen, der durch den Link von Anton direkt angezeigt wurde.
Da steht halt der DIR-Befehl + Optionen.
DU hast mich dazu bewogen, alles durchzulesen. Und erst eben las ich, dass ich selbst eine Frage wegen rekursiv usw stellte.
Und wer weiß, vllt hab ich diesen DIR-Tipp, der für mich!^^ vor 7 Jahren + für Andreas vor 2 Tagen erneut gezeigt wurde, in wenigen Monaten wieder vergessen^^
Ciao
Thorsten
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige