| 
		
	
	
	
		
	Registriert seit: 01.07.2023
	
Version(en): Pro Plus 2024 - 365
 
	
	
		Hallo an alle. ich habe folgenden Code: Code: Sub Dateien(Objekt As Object)Dim Item As Object
 
 For Each Item In Objekt
 
 If Range("D7") <> "" And Range("D9") <> "" Then
 
 ' UCase(Range("D8")) bedeutet Umwandlung der endung auf Großbuchstaben
 If InStrRev(Range("D7") & Range("D9"), Range("D9")) > 0 Or InStrRev(Range("D7") & Range("D9"), UCase(Range("D9"))) > 0 Then
 
 If Item.Name = Range("D7") & Range("D9") Or Item.Name = Range("D7") & UCase(Range("D9")) Then
 
 'If Item.Name = "*" & Range("D7") & "*" & Range("D9") Or Item.Name = "*" & Range("D7") & "*" & UCase(Range("D9")) Then
 
 
 
 [a65536].End(xlUp).Offset(1, 0) = "=HYPERLINK(" & _
 """" & Item.Path & """," & _
 """" & Range("D7") & Range("D9") & """)"
 
 lRowCounter = lRowCounter + 1
 
 End If
 
 End If
 
 Else
 
 
 If InStrRev(Item.Name, Range("D9")) > 0 Or InStrRev(Item.Name, UCase(Range("D9"))) > 0 Then
 
 [a65536].End(xlUp).Offset(1, 0) = "=HYPERLINK(" & _
 """" & Item.Path & """," & _
 """" & Item.Name & """)"
 
 lRowCounter = lRowCounter + 1
 
 End If
 
 End If
 
 Next
 
 End Sub
Wie kann ich nach einem Dateinamen Range("D7") im Form von 20240101* suchen wenn der  Dateiname "20240101 Testfirma Angebot Pumpe.pdf" lautet?  Besser wäre natürlich nach einem Wortstück zu suchen: Suche nach: Testfirma im Dateinamen "20240101 Testfirma Angebot Pumpe.pdf"  (Leerzeichen könnten generell im Dateinamen auftauchen) Vielen dank
	 
	
	
	
		
	Registriert seit: 10.04.2014
	
Version(en): 97-2019 (32) + 365 (64)
 
	
	
		Hallöchen, dazu gibt es den Dir-Befehl.  MeineDatei = Dir("*...*") können mehrere Treffer auftreten? Dann erzeuge ein Array mit den Treffern - hier mal ein Ansatz. Das Array für die Dateien habe ich hier mal mit 1000 vorbelegt. Code: Sub DateiListe()Dim arrDateien, iCnt%
 'Array für 1000 Dateien - sollte groesser sein als die zu erwartende Dateianzahl, ansonsten kommt ein Fehler
 ReDim arrDateien(1000)
 'erste Datei aufgreifen
 MeineDatei = Dir("C:\Temp\*.*")
 'Schleife ueber alle entsprechenden Dateien
 While MeineDatei <> ""
 'Treffer in Array aufehmen
 arrDateien(iCnt) = MeineDatei
 'naechste Datei aufgreifen
 MeineDatei = Dir
 'Array-Index hochzählen
 iCnt = iCnt + 1
 'Ende Schleife ueber alle entsprechenden Dateien
 Wend
 'Arraygroesse auf Anzahl Treffer zuruecksetzen
 ReDim Preserve arrDateien(iCnt - 1)
 End Sub
.      \\\|///      Hoffe, geholfen zu haben.( ô ô )      Grüße, André aus G in T
 ooO-(_)-Ooo    (Excel 97-2019+365)
 
	
	
	
		
	Registriert seit: 01.07.2023
	
Version(en): Pro Plus 2024 - 365
 
	
	
		Vieleicht habe ich mich etwas unverständlich ausgedrückt!
 D7 da möchte ich ein Wortteil aus einem Dateinamen suchen
 D9 steht die Dateiendung zur Auswahl (.jpg, .pdf usw.)
 
 Es sollen alle Dateien aufgelistet werden, wo der gesuchte Wortteil aus D7 vorkommt.
 
 Mein Code findet momentan nur die exakte Übereinstimmung des Dateinamens. Möchte aber nur Wortteile eingeben und in Dateinamen suchen und auflisten.
 
	
	
	
		
	Registriert seit: 10.04.2014
	
Version(en): 97-2019 (32) + 365 (64)
 
	
	
		Kannst Du Range("D7") nicht in das Beispiel einbauen?
	 
.      \\\|///      Hoffe, geholfen zu haben.( ô ô )      Grüße, André aus G in T
 ooO-(_)-Ooo    (Excel 97-2019+365)
 
	
	
	
		
	Registriert seit: 01.07.2023
	
Version(en): Pro Plus 2024 - 365
 
	
	
		sicher, nur mein Verzeichnisbaum sieht wie folgt aus:
 Hauptordner C:\Test
 
 Dateien im Hauptordner
 Test1.pdf
 Unterordner: -> Angebote
 Test2.pdf
 Test3.pdf
 Unterordner: -> Belege
 Test4.pdf
 Unterordner: -> Rechnungen
 Test5.pdf
 Test6.pdf
 
 Über D7 soll er zB. bei Eingabe "4" die Auflistung wie folgt bringen:
 
 Hauptordner C:\Test
 
 Dateien im Hauptordner
 
 Unterordner: -> Angebote
 Unterordner: -> Belege
 Test4.pdf
 Unterordner: -> Rechnungen
 
	
	
	
		
	Registriert seit: 10.04.2014
	
Version(en): 97-2019 (32) + 365 (64)
 
	
		
		
		21.04.2024, 11:25 
(Dieser Beitrag wurde zuletzt bearbeitet: 21.04.2024, 11:28 von schauan.)
		
	 
		Hallöchen,
 1)
 Kannst Du Range("D7") nicht in das Beispiel einbauen?
 Die Frage ist noch unbeantwortet oder meinst Du mit "sicher", dass das klappt?
 
 2)
 wenn das klappt, dann schauen wir, wie das mit den Unterordner geht. Stand übrigens nix davon in der ursprünglichen Aufgabe ...
 Da ergibt sich die nächste Frage - sind alle Unterordner zu durchsuchen oder gibt es nur bestimmte ...
 bei bestimmten könntest Du die Ordner fest einbinden und z.B. Schleife für diese Ordner wiederholen.
 
.      \\\|///      Hoffe, geholfen zu haben.( ô ô )      Grüße, André aus G in T
 ooO-(_)-Ooo    (Excel 97-2019+365)
 
	
	
	
		
	Registriert seit: 01.07.2023
	
Version(en): Pro Plus 2024 - 365
 
	
	
		Hier der komplette Code: Code: Option ExplicitPublic lRowCounter As Long
 Public Ordnercount As Long
 
 Sub Auslesen1()
 
 Dim objShell As Object
 Dim objFolder As Object
 Dim x As Object
 Dim y As Object
 
 lRowCounter = 0
 Ordnercount = 0
 
 Range("D4") = ""
 Range("D5") = ""
 
 If Range("A1") <> "" Then
 Call del_b
 End If
 
 Set objShell = CreateObject("Shell.Application")
 With objShell
 If Range("D11") = "" Then
 Set objFolder = .BrowseForFolder(0&, "Pfad", 0, "" & Range("D1") & "")
 Else
 Set objFolder = .BrowseForFolder(0&, "Pfad", 0, "" & Range("D1") & Range("D11") & "\")
 End If
 End With
 
 Set x = CreateObject("Scripting.FileSystemObject")
 
 If (Not objFolder Is Nothing) Then
 Set y = x.getfolder(objFolder.self.Path)
 
 Else
 Exit Sub
 End If
 'Set y = x.GetFolder(ActiveWorkbook.Path)
 
 
 [a1] = "HAUPTORDNER: " & y.Path
 [a1].Interior.Color = vbBlue
 [a1].Font.Color = RGB(255, 255, 255)
 Dateien y.Files
 Ordner y
 
 
 If Range("D9") <> "" Then
 
 If lRowCounter = 0 Then
 Range("D5") = "Es wurden keine Dateien gefunden!"
 ElseIf lRowCounter = 1 Then
 Range("D5") = "Es wurde " & lRowCounter & " Dateie gefunden!"
 Else
 Range("D5") = "Es wurden " & lRowCounter & " Dateien gefunden!"
 End If
 
 If lRowCounter = 0 Then
 MsgBox "Es wurden keine Dateien mit der Endung " & """" & Range("D9") & """" & " gefunden!"
 ElseIf lRowCounter = 1 Then
 MsgBox "Es wurde " & lRowCounter & " Datei mit der Endung " & """" & Range("D9") & """" & " gefunden!"
 Else
 MsgBox "Es wurden " & lRowCounter & " Dateien mit der Endung " & """" & Range("D9") & """" & " gefunden!"
 End If
 
 Else
 
 Range("D5") = lRowCounter
 
 If lRowCounter = 0 Then
 MsgBox "Es wurden keine Dateien gefunden!"
 ElseIf lRowCounter = 1 Then
 MsgBox "Es wurde " & lRowCounter & " Datei gefunden!"
 Else
 MsgBox "Es wurden " & lRowCounter & " Dateien gefunden!"
 End If
 
 End If
 
 If Ordnercount > 0 Then
 Range("D4") = "Es wurden " & Ordnercount & " Unterordner gefunden!"
 End If
 
 '------------------
 ' Unterordner auslesen und in Spalte I auflisten
 On Error Resume Next
 
 If Range("I2") <> "" Then
 Call del_b
 End If
 
 Dim lRow As Long
 
 Dim oFolder As Object, oSFolder As Object, oFS As Object
 Set oFS = CreateObject("Scripting.filesystemobject")
 Set oFolder = oFS.getfolder(Range("D1").Value) '("C:\Users\Andreas\Documents\Test\")
 For Each oSFolder In oFolder.subfolders
 ActiveSheet.Cells(Rows.Count, 9).End(xlUp).Offset(1) = oSFolder.Name
 Next
 
 lRow = ActiveSheet.Cells(Rows.Count, 9).End(xlUp).Row
 ActiveWorkbook.Names.Add Name:="Ordnername", RefersToR1C1:="=Dateiablage!R2C9:R" & lRow & "C9" ' =Dateiablage!I2:I" & lRow
 
 'Sheets("Ordner").Visible = False
 ActiveSheet.Range("D10").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
 xlBetween, Formula1:="=Ordnername"
 '------------------
 
 Range("A1").Select
 
 End Sub
 
 Sub Dateien(Objekt As Object)
 Dim Item As Object
 
 For Each Item In Objekt
 
 If Range("D7") <> "" And Range("D9") <> "" Then
 
 ' UCase(Range("D8")) bedeutet Umwandlung der endung auf Großbuchstaben
 If InStrRev(Range("D7") & Range("D9"), Range("D9")) > 0 Or InStrRev(Range("D7") & Range("D9"), UCase(Range("D9"))) > 0 Then
 
 If Item.Name = Range("D7") & Range("D9") Or Item.Name = Range("D7") & UCase(Range("D9")) Then
 
 'If Item.Name = "*" & Range("D7") & "*" & Range("D9") Or Item.Name = "*" & Range("D7") & "*" & UCase(Range("D9")) Then
 
 
 
 [a65536].End(xlUp).Offset(1, 0) = "=HYPERLINK(" & _
 """" & Item.Path & """," & _
 """" & Range("D7") & Range("D9") & """)"
 
 lRowCounter = lRowCounter + 1
 
 End If
 
 End If
 
 Else
 
 
 If InStrRev(Item.Name, Range("D9")) > 0 Or InStrRev(Item.Name, UCase(Range("D9"))) > 0 Then
 
 [a65536].End(xlUp).Offset(1, 0) = "=HYPERLINK(" & _
 """" & Item.Path & """," & _
 """" & Item.Name & """)"
 
 lRowCounter = lRowCounter + 1
 
 End If
 
 End If
 
 Next
 
 End Sub
 
 Sub Ordner(Objekt As Object)
 Dim Ordnername$, Ordnername2$
 Dim Item As Object
 For Each Item In Objekt.subfolders
 [a65536].End(xlUp).Offset(1, 0) = "Unterordner: -> " & Item.Name
 [a65536].End(xlUp).Font.Color = RGB(0, 0, 0)
 [a65536].End(xlUp).Font.Bold = True
 '    [a65536].End(xlUp).Interior.Color = RGB(50, 250, 0)
 Dateien Item.Files
 Ordner Item
 
 Ordnercount = Ordnercount + 1
 
 Next
 End Sub
 
 
 Sub del_a()
 ' del_a Makro
 ' löscht spalte a
 
 Columns("A:A").Select
 Selection.ClearContents
 Selection.ClearFormats
 With Selection.Interior
 .Pattern = xlNone
 .TintAndShade = 0
 .PatternTintAndShade = 0
 End With
 Range("D4") = ""
 Range("D5") = ""
 Range("D7") = ""
 Range("D8") = ""
 Range("D9") = ""
 Range("D11") = ""
 Range("A1").Select
 
 '-------------
 ActiveSheet.Columns("I:I").Select
 Selection.ClearContents
 Selection.ClearFormats
 With Selection.Interior
 .Pattern = xlNone
 .TintAndShade = 0
 .PatternTintAndShade = 0
 End With
 ActiveSheet.Range("I2").Select
 ActiveSheet.Range("I1") = "Ordnerliste"
 ActiveSheet.Range("I1").Font.Bold = True
 '---------------
 
 Range("A1").Select
 End Sub
 
 Sub del_b()
 ' del_a Makro
 ' löscht spalte a
 
 Columns("A:A").Select
 Selection.ClearContents
 Selection.ClearFormats
 With Selection.Interior
 .Pattern = xlNone
 .TintAndShade = 0
 .PatternTintAndShade = 0
 End With
 Range("A1").Select
 
 '-------------
 ActiveSheet.Columns("I:I").Select
 Selection.ClearContents
 Selection.ClearFormats
 With Selection.Interior
 .Pattern = xlNone
 .TintAndShade = 0
 .PatternTintAndShade = 0
 End With
 ActiveSheet.Range("I2").Select
 ActiveSheet.Range("I1") = "Ordnerliste"
 ActiveSheet.Range("I1").Font.Bold = True
 '---------------
 
 Range("A1").Select
 End Sub
 
	
	
	
		
	Registriert seit: 10.04.2014
	
Version(en): 97-2019 (32) + 365 (64)
 
	
		
		
		21.04.2024, 12:35 
(Dieser Beitrag wurde zuletzt bearbeitet: 21.04.2024, 12:36 von schauan.)
		
	 
		Hallöchen,
 ich denke, in der Zeile
 
 If Item.Name = Range("D7") & Range("D9") Or Item.Name = Range("D7") & UCase(Range("D9")) Then
 
 nimmst Du etwas in der Art
 
 If Item.Name Like "*" & Range("D7") & "*" & Range("D9") Or Item.Name Like "*" & Range("D7") & "*"  & UCase(Range("D9")) Then
 
 Wobei Du gleich
 
 If Item.Name Like "*" & Range("D7") & "*"  & UCase(Range("D9")) Then
 
 nehmen kannst ...
 
.      \\\|///      Hoffe, geholfen zu haben.( ô ô )      Grüße, André aus G in T
 ooO-(_)-Ooo    (Excel 97-2019+365)
 
	
	
	
		
	Registriert seit: 01.07.2023
	
Version(en): Pro Plus 2024 - 365
 
	
	
		Supi, hat geklappt! Nur würde ich gern folgenden code erweitern Bsp: Ordner Unterordner Ordner Unterordner Unterordner Er soll erkennen, ob es ein Hauptordner oder unterordner ist und anzeigen. Code: Sub Ordner(Objekt As Object)Dim Ordnername$, Ordnername2$
 Dim Item As Object
 
 For Each Item In Objekt.subfolders
 [a65536].End(xlUp).Offset(1, 0) = "Unterordner: -> " & Item.Name
 [a65536].End(xlUp).Font.Color = RGB(0, 0, 0)
 [a65536].End(xlUp).Font.Bold = True
 '    [a65536].End(xlUp).Interior.Color = RGB(50, 250, 0)
 Dateien Item.Files
 Ordner Item
 
 Ordnercount = Ordnercount + 1
 
 
 Next
 End Sub
 
	
	
	
		
	Registriert seit: 01.07.2023
	
Version(en): Pro Plus 2024 - 365
 
	
		
		
		21.04.2024, 18:37 
(Dieser Beitrag wurde zuletzt bearbeitet: 21.04.2024, 18:37 von Andyle.)
		
	 
		Habe gerade bemerkt, dass exakt nach Groß- Kleinschreibung gesucht wird.
 Kann man es anpassen, das diese egal ist?
 
 Danke
 
 Groß- Kleinschreibung  erledigt!
 |