ich bastel mir gerade ein Makro zusammen,
allerdings klappt es nicht.
Ich möchte eine Datei im kompl. Laufwerk C: suchen.
strPath = "C:\"
so gehts auch nicht : strPath = "C:\*.*"
mfg
walter mb
Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim DateiNam As String
Dim mb
Dim tan
mb = TextBox7.Text
Dim strPath$
strPath = "C:\"
With ActiveSheet
strPath = strPath & mb
' MsgBox strPath & mb
If Dir(strPath, vbNormal) "" Then
MsgBox "Kunden-Name " & DateiNam & Chr(13) & Chr(13) & _
"mit der Rg. - Nr. ist vorhanden !" & vbLf & vbLf & "Bitte ändern !"
Else
MsgBox "nicht vorhanden"
End If
End With
End Sub
Habe festgestellt, wenn ich die Datei auf Laufwerkwerk C: abspeichere, zeigt mir
Sub Datei_Suchen()
Dim strDir As String
Dim objFSO As Object
Dim objDir As Object
Set objFSO = CreateObject("scripting.filesystemobject")
strDir = "C:\Temp" 'Ausgangsverzeichnis
Set objDir = objFSO.GetFolder(strDir)
strDir = Dateipfad(objDir, "Irgendeine Datei.txt") 'Diese Datei wird gesucht
If strDir = "" Then
MsgBox "Datei wurde nicht gefunden !"
Else
MsgBox strDir, , "Dateipfad"
End If
Set objDir = Nothing
Set objFSO = Nothing
End Sub
Function Dateipfad(ByVal pCurrentDir As Object, ByVal strName As String)
Dim aItem As Variant
On Error Resume Next
For Each aItem In pCurrentDir.Files
If aItem.Name Like strName Then
Dateipfad = aItem.Path
Exit Function
End If
Next
For Each aItem In pCurrentDir.SubFolders
Dateipfad = Dateipfad(aItem, strName)
If Dateipfad "" Then Exit For
Next
End Function
Gruß und schönes WE, NoNet
Um eine Datei im gesamten Laufwerk C: zu suchen, kannst du VBA (Visual Basic for Applications) in Excel verwenden. Folge diesen Schritten:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Füge ein neues Modul hinzu:
Einfügen
> Modul
.Kopiere den folgenden Code in das Modul:
Sub Datei_Suchen()
Dim strDir As String
Dim objFSO As Object
Dim objDir As Object
Set objFSO = CreateObject("scripting.filesystemobject")
strDir = "C:\" ' Ausgangsverzeichnis
Set objDir = objFSO.GetFolder(strDir)
strDir = Dateipfad(objDir, "Irgendeine Datei.txt") ' Diese Datei wird gesucht
If strDir = "" Then
MsgBox "Datei wurde nicht gefunden!"
Else
MsgBox strDir, , "Dateipfad"
End If
Set objDir = Nothing
Set objFSO = Nothing
End Sub
Function Dateipfad(ByVal pCurrentDir As Object, ByVal strName As String)
Dim aItem As Variant
On Error Resume Next
For Each aItem In pCurrentDir.Files
If aItem.Name Like strName Then
Dateipfad = aItem.Path
Exit Function
End If
Next
For Each aItem In pCurrentDir.SubFolders
Dateipfad = Dateipfad(aItem, strName)
If Dateipfad <> "" Then Exit For
Next
End Function
Ändere die Datei zu suchende Datei in der Zeile strDir = Dateipfad(objDir, "Irgendeine Datei.txt")
.
Führe das Makro aus, um die Datei im Laufwerk C: zu suchen.
Fehler: "Datei wurde nicht gefunden!"
Fehler: Laufwerk C: wird nicht durchsucht
Fehler beim Ausführen des Makros
Datei
> Optionen
> Trust Center
> Einstellungen für das Trust Center
> Makroeinstellungen
.Verwendung der Dir
-Funktion:
If Dir("C:\DeineDatei.txt") <> "" Then
MsgBox "Datei gefunden!"
Else
MsgBox "Datei nicht vorhanden."
End If
Excel-Funktionen:
SVERWEIS
-Funktion genutzt werden, jedoch ist dies nicht für das Durchsuchen des gesamten Laufwerks geeignet.Um eine Datei im Laufwerk C: zu suchen, kannst du den Namen der Datei in eine TextBox eingeben und dann das Makro ausführen. Hier ein Beispiel, wie du die TextBox einbinden kannst:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim strDatei As String
strDatei = TextBox1.Text
' Verwende die Datei-Suchfunktion hier
' ...
End Sub
In diesem Fall wird TextBox1.Text
als Dateiname verwendet.
*
verwenden, um nach Teilstrings zu suchen, z.B. "*Datei*.txt"
für alle Dateien, die "Datei" im Namen haben.1. Wie kann ich die Suchgeschwindigkeit erhöhen? Um die Suchgeschwindigkeit zu erhöhen, beschränke den Suchpfad auf spezifische Ordner, statt das gesamte Laufwerk C: zu durchsuchen.
2. Kann ich nach mehreren Dateien gleichzeitig suchen? Ja, du kannst den Code anpassen, um eine Liste von Dateinamen zu durchsuchen, indem du eine Schleife über die Dateinamen implementierst.
3. Was mache ich, wenn ich keine Berechtigung habe, bestimmte Ordner zu durchsuchen? Stelle sicher, dass du die richtigen Berechtigungen hast oder führe das Makro mit Administratorrechten aus, um Zugriffsprobleme zu vermeiden.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen