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

Nur aktuelle und direkte Unterordnen durchsuchen

Forumthread: Nur aktuelle und direkte Unterordnen durchsuchen

Nur aktuelle und direkte Unterordnen durchsuchen
28.04.2024 10:11:19
wolgertal
Hallo Zusammen,

mit folgenden Makro wird eine Prozedur ausgelöst und Daten aus den
1. Aktuellen Verzeichnis und
2. allen Unterverzeichnissen ausgelesen

Ich möchte den Code gerne so ändern, dass
a) weitere Unterverzeichnisse in einem Unterverzeichnis nicht berücksichtigt werden, und
b) nur Unterverzeichnisse berücksichtigt werden, welche mit zwei Buchstaben und Unterstrich beginnen, z.B. "AB_ordner1xxxxx"

Ist dies möglich? Vielen Dank für eure Unterstützung

Gruß Ulli

Option Private Module
Public Sub Aktualisieren_6()
Dim objFileSearch As clsFileSearch, objFileDialog As FileDialog
Dim ialngIndex As Long, lngFileCount As Long, lngColumn As Long
Dim strFolder As String
Dim wks As Worksheet
Set wks = Tabelle8 ' Aktueller Tabellenblattname vor ()


Set objFileDialog = Application.FileDialog(fileDialogType:=msoFileDialogFolderPicker)
Application.ScreenUpdating = False



strFolder = ActiveWorkbook.Path ' sucht direkt im aktuellen Pfad ohne Dialog

If strFolder > vbNullString Then
Set objFileSearch = New clsFileSearch
With wks
For lngColumn = 1 To 5 'Step 2
Call .Range(.Cells(30, lngColumn), .Cells(.Rows.Count, lngColumn)).ClearContents
Next
End With

With objFileSearch
.CaseSenstiv = False
.Extension = "*.*"
.FolderPath = strFolder
.SubFolders = True
For lngColumn = 2 To 4 Step 2
.NewSearch = True
.SearchLike = Switch(lngColumn = 2, wks.Range("I1"), lngColumn = 4, wks.Range("J1")) & "*"
lngFileCount = .Execute(Sort_by_Name, Sort_Order_Ascending)
For ialngIndex = 1 To lngFileCount
Call wks.Hyperlinks.Add(Anchor:=wks.Cells(ialngIndex + 29, lngColumn), _
Address:=.Files(ialngIndex).Path, TextToDisplay:=.Files(ialngIndex).Filename)
wks.Cells(ialngIndex + 29, 1) = ialngIndex
wks.Cells(ialngIndex + 29, lngColumn + 1) = .Files(ialngIndex).LastModify
Next
Next
End With



Set objFileSearch = Nothing
End If

End Sub
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur aktuelle und direkte Unterordnen durchsuchen
28.04.2024 16:23:07
ralf_b
entweder du änderst die Klasse ab(die du nicht gepostet hast).
oder du fügst eine Abfrage ein bevor die Daten in die Exceltabelle geschrieben werden.

  Dim lrow&: lrow = 0 ' das einfügenm

With objFileSearch
.....
For ialngIndex = 1 To lngFileCount
'und die folgenden Codezeilen so übernehmen
If Replace(.Files(ialngIndex).Path, .Files(ialngIndex).Filename, "") Like "*AB_*" Or _
InStr(1, Replace(.Files(ialngIndex).Path, strFolder, ""), "\") = 0 Then
Call wks.Hyperlinks.Add(Anchor:=wks.Cells(lrow + 29, lngColumn), _
Address:=.Files(ialngIndex).Path, _
TextToDisplay:=.Files(ialngIndex).Filename)
wks.Cells(lrow + 29, 1) = ialngIndex
wks.Cells(lrow + 29, lngColumn + 1) = .Files(ialngIndex).LastModify
lrow = lrow + 1
End If
Next
..............
Anzeige
AW: Nur aktuelle und direkte Unterordnen durchsuchen
28.04.2024 21:00:26
Piet
Hallo

diese kleine "Simpel Makro" listet nur einen Ordner auf. Der Pfad steht in Zelle C1.
Von mir geändert, das es nur Dateien mit einem Unterstrich an dritter Stelle auflistet.
Anmerkung: eine uralte Dir Kamelle, aber funktioniert immer noch einwandfrei.
https://www.herber.de/bbs/user/169127.xls

mfg Piet
Anzeige
AW: Nur aktuelle und direkte Unterordnen durchsuchen
28.04.2024 21:16:12
wolgertal
Hallo Piet,

vielen Dank für deine Nachricht,

ich werde es probieren.

Gruß Ulli
die Klasse ...
28.04.2024 17:11:11
Uduuh
Hallo,
... stammt wahrscheinlich von Nepumuk und wurde im Mai 2007 als Ersatz für das in XL2007 entfallene FileSearch-Objekt geschrieben.

Gruß aus'm Pott
Udo
AW: Nur aktuelle und direkte Unterordnen durchsuchen
28.04.2024 19:04:29
wolgertal
Hallo Ralf,

vielen Dank für deine Mail und deine Unterstützung.

Ich habe den Code entsprechend geändert.

Nur er macht nicht ganz das was er soll.

Die Daten aus einem direkten Unterordner sollen ausgelesen werden, wenn es noch weitere Unterordner (im Unterordner) gibt, sollen diese nicht mehr berücksichtigt werden.

Der Code liest aber nicht aus dem direkten Unterordner, sondern nur aus allen weiteren Unterordnern.

Ich hoffe das ist verständlich

Viele Grüße Ulli
Anzeige
AW: Nur aktuelle und direkte Unterordnen durchsuchen
28.04.2024 19:53:50
ralf_b
hmm, ich habe ein bisschen getestet und dachte das der Code dies genau so tut wie du es gefordert hast. Das mit den weiteren Subordnerleveln stimmt wohl. Aber es werden nur Dateien im Unterordner mit "AB_" im Pfad in die Liste eingetragen. Ich habe einen Weg aufgezeigt an welcher Stelle du deinen Code anpassen kannst. Mach was draus.
Die Klasse hat einen Schalter .SubFolders aber keinen Schalter der die Ordnertiefe angibt. Es gibt auch andere VBA Codes, die Ordner durchsuchen und sind etwas einfacher gehalten.
Anzeige
AW: Nur aktuelle und direkte Unterordnen durchsuchen
28.04.2024 21:09:45
wolgertal
Hallo Ralf,

ich versuche es :-)

Danke für deine Mühe.

Gruß Ulli
AW: Nur aktuelle und direkte Unterordnen durchsuchen
28.04.2024 19:32:20
wolgertal
Hallo Ralf,

es würde auch reichen wenn nur Daten aus direkten Unterordnern berücksichtigt würden, unabhängig vom Namen.

Nur weitere Unterordner sollten nicht berücksichtigt werden.

Viele Grüße Ulli
Anzeige
;

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