Registriert seit: 15.04.2018
Version(en): 2013
14.09.2025, 12:00
(Dieser Beitrag wurde zuletzt bearbeitet: 14.09.2025, 12:04 von slowboarder.)
(14.09.2025, 11:19)RPP63 schrieb: Hast Du etwas Einfacheres (ich meine natürlich Geschickteres)?
Gruß Ralf Wenn Excel 365 verwendet werden wird, sollte man auch die Funktion TEXTNACH in VBA verwenden können. Da wäre die Formel dann einfacher: WorksheetFunction.TextAfter(fullname, "\", -1) Hab jetzt aber nicht geprüft, ob die Funktion auch unter diesem Namen im WF-Katalog steht
Hi Wenn man für GetOprnFilename den Startpfad vorgeben will, dann funktioniert das so, sofern das Laufwerk einem Buchstaben zugeordnet ist: ChDrive "D" ChDir "D:\D-Dokumente\sonstiges\Testordner" FullName =Application.GetOpenFilename(...) Gruß Daniel
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
14.09.2025, 12:41
(Dieser Beitrag wurde zuletzt bearbeitet: 14.09.2025, 12:41 von RPP63.)
TEXTAFTER funktioniert nicht per WSF.
Es ginge mit Evaluate(): Evaluate("TEXTAFTER(""" & ThisWorkbook.FullName & """, ""\"", -1)")da finde ich Dir(ThisWorkbook.FullName) etwas griffiger. Disclaimer: ThisWorkbook.FullName dient hier nur als Platzhalter …
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 22.09.2024
Version(en): 2010, 2021
14.09.2025, 14:46
(Dieser Beitrag wurde zuletzt bearbeitet: 14.09.2025, 14:46 von knobbi38.)
Hallo, jetzt wird es langsam aber etwas kurios, Dir() und Evaluate() für das Ermitteln eines Dateinamens aus einem absoluten Dateiangabe und ein "Exit Sub" fehlt da auch nicht.  Ein schönes Beispiel findet man z.B. hier: https://vbaplanet.com/filedialogs.phpDen Dateinamen kann man dann einfach mit VBA Mitteln so ermitteln: Code: mid$(strFullFilename, InStrRev(strFullFilename, "\")+1)
Dir() seht zwar elegant aus, ist es aber nicht und sollte eigentlich, weil es nicht reentrant fähig ist, gar nicht erst verwendet werden. Mal abgesehen davon unterstützt Dir() m.W. keine Unicode-Zeichen in Dateinamen. Je nach Anforderung könnte man Ersatzweise auch das FSO dafür verwenden. Knobbi38
Registriert seit: 29.09.2015
Version(en): 2030,5
14.09.2025, 14:59
(Dieser Beitrag wurde zuletzt bearbeitet: 14.09.2025, 15:00 von snb.)
Code: Sub M_snb() With Application.FileDialog(3) .InitialFileName = "D:\snb_\OF\*.*" If .Show Then MsgBox CreateObject("scripting.filesystemobject").getfile(.SelectedItems(1)).Name End With End Sub
oder Code: Sub M_snb() With Application.FileDialog(3) .InitialFileName = "D:\snb_\OF\*.*" If .Show Then MsgBox Dir(.SelectedItems(1)) End With End Sub
Folgende(r) 3 Nutzer sagen Danke an snb für diesen Beitrag:3 Nutzer sagen Danke an snb für diesen Beitrag 28
• PIVPQ, Crazy Tom, RPP63
Registriert seit: 12.04.2014
Version(en): Office 365
moin, ich sehe schon es gibt mehrere Wege mein Ziel zu erreichen schade, dass ich nicht einen davon kannte  mfg Tom
Registriert seit: 12.07.2025
Version(en): 2021
(14.09.2025, 18:17)Crazy Tom schrieb: schade, dass ich nicht einen davon kannte  Mach Dir mal keinen Kopf, Du bist halt an dem Punkt wo wir vor Jahrzehnten waren. Mut zur Lücke, Versuch macht kluch, mit der Zeit wird das. In ein paar Jahren bist Du an dem Punkt wo sich der Käse anfängt zu wiederholen. Andreas.
Registriert seit: 29.09.2015
Version(en): 2030,5
15.09.2025, 10:07
(Dieser Beitrag wurde zuletzt bearbeitet: 15.09.2025, 10:09 von snb.)
Oder als Nachbrenner Code: Sub M_snb() With Application.FileDialog(3) .InitialFileName = "D:\snb_\OF\" If .Show Then MsgBox Replace(.SelectedItems(1), .InitialFileName, "") End With End Sub
Registriert seit: 15.04.2018
Version(en): 2013
(14.09.2025, 18:17)Crazy Tom schrieb: moin,
ich sehe schon es gibt mehrere Wege mein Ziel zu erreichen schade, dass ich nicht einen davon kannte 
mfg Tom  kein Problem. Es ist die Grundlage des Programmierens, dass man sich aus aus den Werkzeugen die man kennt, selber die Werkzeuge zusammenbastelt, die man braucht aber noch nicht hat. Wenn man keine Spezialfunktionen (TextNach, InstrRev, Dir) für sowas kennt, würde man sich das selber programmieren Code: for i = Len(VollständigerDateiname) to 1 step -1 if Mid(VollständigerDateiname, i, 1) = "\" then Exit for Dateiname = Mid(VollständigerDateiname, i, 1) & Dateiname Next
Registriert seit: 12.04.2014
Version(en): Office 365
moin,
mein Problem bestand weniger darin den Dateinamen aus dem kompletten Pfad zu ermitteln sondern den festgelegten Ordner zu öffnen und durch klick auf die Datei die Information zum Dateinamen, oder von mir aus auch den Fullname, zu ermitteln aus dem Fullname den Dateinamen zu holen, hätte ich schon hinbekommen
mfg Tom
|