Hallo liebe Leute,
ich möchte folgenden Code modifizieren:
Dim varDatei, varPfad1 As Variant
varDatei = Application.GetOpenFilename("Alle Dateien,*.*", 1, "Auswahl Schichtprotokoll")
varPfad1 = Replace(varDatei, "Schichtprotokoll_", "[Schichtprotokoll_")
varPfad1 = Replace(varPfad1, "xlsm", "xlsm]") '
varPfad1 = "'" & varPfad1 & "Schichtprotokoll'!"
Sinn des Codes ist folgender:
Es soll ein ausgewählter Dateipfad (bspw. C:\XYZ\Schichtprotokoll_1234.xlsm) eingelesen werden. In dieser ausgewählten Exceldatei will ich dann auf das Tabellenblatt "Schichtprotokoll" zugreifen. Daher soll der ausgewählte Dateipfad entsprechend abgeändert werden:
Eingelesen: C:\XYZ\Schichtprotokoll_1234.xlsm
Abgeändert: C:\XYZ\[Schichtprotokoll_1234.xlsm]Schichtprotokoll'!
Genau das funktioniert mit obigem Code auch ganz gut. Nun ist es allerdings so, dass es vorkommen kann, dass vor dem Dateinamen noch eine Zahl steht. Der Name könnte also lauten C:\XYZ\17Schichtprotokoll_1234.xlsm
Mit obigem Code ändert er den Namen nun leider nicht mehr korrekt ab, da die 17 dann außerhalb der eckigen Klammer ist, obwohl sie drin sein müsste:
Darstellung mit obigem Code: C:\XYZ\17[Schichtprotokoll_1234.xlsm]Schichtprotokoll'!
Darstellung wie sie sein sollte: C:\XYZ\[17Schichtprotokoll_1234.xlsm]Schichtprotokoll'!
Hat jemand eine Idee, wie sich das realisieren lässt?
Vielen, vielen Dank im Voraus!
|