Hallo liebes VBA-Forum-Team!
Folgende Problematik:
Ich möchte in einem Formular einen Button erstellen, der Excel öffnet und eine entsprechende Excel-Datei, soweit kein Problem.
Falls die Datei jedoch nicht mehr vorhanden ist, möchte ich den Explorer so nah wie möglich der Datei (wo sie überlicherweise war) öffnen.
Das Problem hierbei ist, dass ich verschiedene Produktkategorien zur Auswahl habe und die jeweiligen Excel-Dateien dann nochmals in zig Unterordnern "versteckt" sind (Bsp.: G:\ANGEBOTE\03_BT\03-767_PL_Krakau_Congress Center\3_ANGEBOTE).
Mit meinem aktuellen Code ist es mir gelungen den Explorer ab "G:\ANGEBOTE\03_BT" zu öffnen (gibt dann auch noch G:\ANGEBOTE\04_BT, G:\ANGEBOTE\05_BT etc.).
Dann aber folgen eben verschiede Projekte - "3_ANGEBOTE" ist dann wieder in jedem Pfad gleich.
Die Anfangsnummer der Projekte ist auch in meinem Formular enthalten.
Nun frage ich euch, ob ihr mir vl. weiterhelfen könnt?
Ich habs schon mit Funktionen wie InStr oder Mid versucht, aber ich komme auf keinen grünen Zweig.
Beste Grüße
Markus
Mein aktueller Code:
Private Sub Befehl133_Click()
On Error GoTo Err_Befehl133_Click
Dim EX As Excel.Application
Dim WB As Excel.Workbook
Dim WS As Excel.WorkSheet
Dim ExcelFileDirect As String
Dim WorkSheet As String
ExcelFileDirect = [F48]
WorkSheet = [F1]
prePfad = "G:\Group\ANGEBOTE\"
'Ordnervorselektierung je nach Angebotsnummer
If Left(Forms![E_Winden]![AngNr], 2) = "03" Then
prePfad = "G:\Group\ANGEBOTE\03_BT\"
End If
If Left(Forms![E_Winden]![AngNr], 2) = "04" Then
prePfad = "G:\Group\ANGEBOTE\04_GT_Angebote\"
End If
If Left(Forms![E_Winden]![AngNr], 2) = "06" Then
prePfad = "G:\Group\ANGEBOTE\06_Kleinangebote\"
End If
If Left(Forms![E_Winden]![AngNr], 2) = "07" Then
prePfad = "G:\Group\ANGEBOTE\07_WBL\"
End If
'Wenn Excel-Datei nicht vorhanden, zum nächst gelegenen Ort (bzw. Ordner navigieren)
If Dir(ExcelFileDirect) = "" Then
MsgBox "Die gesuchte Excel-Datei wurde nicht gefunden!" & vbCrLf & "Bitte suchen Sie die Datei selbst!", vbInformation, "Fehler"
Pfad = DateiOeffnen("Datei öffnen", "Microsoft-Excel-Dateien" & Chr$(0) & "*.xls", , prePfad)
Else
'Ansonsten Excel ausführen und die entsprechende Excel-Datei öffnen
Set EX = CreateObject("Excel.Application")
Set WB = EX.Workbooks.Open(ExcelFileDirect)
Set WS = WB.Worksheets(WorkSheet)
WB.Worksheets(WorkSheet).Visible = True
WB.Worksheets(WorkSheet).Activate
EX.Visible = True
Set EX = Nothing
End If
Exit_Befehl133_Click:
Exit Sub
Err_Befehl133_Click:
MsgBox Err.Description
Resume Exit_Befehl133_Click
End Sub
|