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

Teilst. im Unterord. suchen Fehlerm. 52

Teilst. im Unterord. suchen Fehlerm. 52
02.03.2023 10:44:05
Manfred
Hallo zusammen,
leider habe ich ein Problem mit u.g. Makro.
Das Makro liest in Sp_A einen Teilstring aus und sucht mir das entsprechende Excel-Dokument in allen Unterordnen und öffnet es.
Das Makro funktioniert einwandfrei.
Beispiel:
Zelle A1= 10111; anklicken und Makro mit Button starten.
Excel-Dokument: 10111_Das ist aber eine schöne Datei.xlsx, öffnet sich.
Nun muss ich auf ein Server-Laufwerk wechseln und bekomme eine Fehlermeldung.
Fehlermeldung: Laufzeitfehler 52; Dateiname oder -nummer falsch.
If GetAttr(PathName:=strPath & strFolder) And vbDirectory Then 'Fehlermeldung
'Const FOLDER_PATH As String = "P:\01_Unterordner\02_Unterordner\usw\" 'das ist der alte Ordner
Const FOLDER_PATH As String = "\\server\Projects\01_Unterordner\02_Unterordner \usw\" 'das ist der neue Ordner
Kann mir bitte jemand helfen dieses Problem zu lösen ?
Ich habe verschiedene Lösungen probiert, bekomme das aber mit meinen VBA-Kenntnissen nicht hin.
Wäre nett wenn mich jemand unterstützen könnte.
Mit freundlichen Grüßen
Manfred
Option Explicit
Sub Aenderung_suche()
'Const FOLDER_PATH As String = "P:\01_Aenderungsantraege\" 'das ist der alte Ordner
Const FOLDER_PATH As String = "\\server\Projects\01_Aenderungsantraege\" 'das ist der neue UNC Pfad Ordner
Dim astrFolders() As String, strFilename As String, strSearch As String
Dim ialngFolders As Long
strSearch = ActiveCell.Value
astrFolders = GetFolders(FOLDER_PATH)
For ialngFolders = LBound(astrFolders) To UBound(astrFolders)
strFilename = Dir$(astrFolders(ialngFolders) & strSearch & "*.xls*") 'Der Dateiname suchen
If strFilename > vbNullString Then Exit For
Next
If strFilename > vbNullString Then
Call ThisWorkbook.FollowHyperlink(astrFolders(ialngFolders) & strFilename)
Else
Call MsgBox("Sowas.... Nummer wurde ( noch ) nicht vergeben !!", vbExclamation, "Hinweis")
End If
End Sub
Private Function GetFolders(ByVal pvstrPath As String) As String()
Dim astrFolders() As String
Dim strFolder As String, strPath As String
Dim ialngIndex1 As Long, ialngIndex2 As Long
ReDim Preserve astrFolders(ialngIndex1)
astrFolders(ialngIndex1) = pvstrPath
ialngIndex1 = 1
ialngIndex2 = 1
strPath = pvstrPath
Do
strFolder = Dir$(PathName:=strPath & "*", Attributes:=vbDirectory)
Do Until strFolder = vbNullString
If strFolder > "." And strFolder > ".." Then
If GetAttr(PathName:=strPath & strFolder) And vbDirectory Then 'Fehlermeldung
ReDim Preserve astrFolders(0 To ialngIndex1)
astrFolders(ialngIndex1) = strPath & strFolder & "\"
ialngIndex1 = ialngIndex1 + 1
End If
End If
strFolder = Dir$
Loop
If ialngIndex1 = ialngIndex2 Then Exit Do
strPath = astrFolders(ialngIndex2)
ialngIndex2 = ialngIndex2 + 1
Loop
GetFolders = astrFolders
End Function

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Teilst. im Unterord. suchen Fehlerm. 52
02.03.2023 10:50:28
Daniel
Hi
öffne mal eine Exceldatei, die sich in diesem Ordner befindet.
gehe dann in den VBA-Editor und gib im Direktfenster den Befehl ein:
?ActiveWorkbook.Path
Stimmt der ausgebene Pfad mit dem überein, was du in deinem Makro verwendest?
Gruß Daniel
AW: Teilst. im Unterord. suchen Fehlerm. 52
02.03.2023 11:15:41
Manfred
Hallo Daniel,
danke für die Rückmeldung.
Ergebnis: J:\X_IRETC\01_ER\01_Engineering
Ich benötige die Serveradresse weil vom Ausland aus auch auf dieses Laufwerk zugegriffen wird.
Oder gehts auch anderst.
Gruß
Manfred
AW: Teilst. im Unterord. suchen Fehlerm. 52
02.03.2023 11:23:39
Daniel
Wo liegt denn die Datei mit dem Makro?
liegt die auch auf diesem Server und wird von dort geöffnet?
wenn ja, dann könntest du mit ThisWorkbook.Path den Pfad ermitteln und damit dann dann den Pfad für die anderen Dateien erstellen.
Gruß Daniel
Anzeige
AW: Teilst. im Unterord. suchen Fehlerm. 52
02.03.2023 11:38:59
Manfred
Hallo Daniel,
die Datei liegt in J:\X_IRETC\ und wird auch von hier geöffnet und bearbeitet.
Die Spalte A geht aber von A1 bis 500 oder mehr, es kommen regelmäßig neue Einträge hinzu, auch neue Unterordner.
Das Makro sucht dann in den Unterordnern nach Excel.xlsx mit diesem Teilstring und öffnet dieses.
Wie muss ich das Makro anpassen ?
Gruß
Manfred
AW: Teilst. im Unterord. suchen Fehlerm. 52
02.03.2023 16:25:59
Daniel
Hi
also
dim FolderPath as string
FolderPath = Left(thisworkbook.path, 3) & "Projects\01_Aenderungsantraege\"
teste erstmal das, ob es funktioniert.
ansonsten ist es besser, bei neuen Problemen, die man im Eingangsposting noch nicht erwähnt hat, eine neue Frage zu stellen.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige