Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dateiname aus Pfad extrahieren

Dateiname aus Pfad extrahieren
06.10.2014 22:30:48
Falo
Hallo zusammen,
ich möchte mit einem Makro eine Datei öffnen,(der Pad steht in Zelle A5) und ein Makro in der geöffneten Datei ausführen. Die Datei wird auch geöffnet, nur Application.Run braucht nur den Dateinamen ohne Pfad. Wie kann ich aus dem Pfad den Dateinamen extrahieren hat jemand einen Tipp für mich
Mit freundlichen Grüßen aus dem Sauerland
Olaf

Private Sub DateiÖffnenP1_Click()
Dim Pfad As String
Pfad = ActiveWorkbook.Worksheets("System").Range("A5").Value
Workbooks.Open Filename:=Pfad
Application.Run "Pfad!Berechnen"

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiname aus Pfad extrahieren
06.10.2014 22:55:20
Daniel
Hi
um den Dateinamen aus dem Pfad zu extrahieren:
dateiname = mid$(Pfad, InstrRev(Pfad, "\") + 1)

oder
dateiname = split(Pfad, "\")(Ubound(Split(Pfad, "\")))

dann
Application.Run dateiname & "!Berechnen"

Gruß Daniel

Anzeige
AW: Dateiname aus Pfad extrahieren
07.10.2014 00:04:15
Falo
Hallo Daniel,
Danke für deine schnelle Antwort.
so soll es sein, den Dateiname wird Extrahiert.
es kommt eine Fehlermeldung, das er das Makro nicht findet. weist Du ob man den Tabellen Name mit angeben muß
Mit freundlichen Grüßen aus dem Sauerland
Olaf

so Application.Run dateiname & "!Tabelle1.Berechnen"
oder so Application.Run dateiname & "!Berechnen"
So steht es im VBA editor Sub Berechnen()
Private Sub DateiÖffnenP1_Click()
Dim Pfad As String
Pfad = ActiveWorkbook.Worksheets("System").Range("A5").Value
Workbooks.Open Filename:=Pfad
dateiname = Split(Pfad, "\")(UBound(Split(Pfad, "\")))
Application.Run dateiname & "!Tabelle1.Berechnen"
End Sub

Anzeige
AW: Dateiname aus Pfad extrahieren
07.10.2014 00:58:09
Daniel
wenn das Makro in einem Tabellenblattmodul steht, muss man den Tabellenblattnamen mit angeben, wenn das Makro in einem allgemeinen Modul steht, reicht der Dateiname.
Gruß Daniel

AW: Dateiname aus Pfad extrahieren
07.10.2014 01:00:30
Daniel
Die Datei muss natürlich geöffnet sein und wenn Sonderzeichen vorhanden sind, kann es erforderlich sein, den Namen in Hochkommas zu setzen.
Gruß Daniel

Anzeige
AW: Dateiname aus Pfad extrahieren
07.10.2014 10:50:11
Falo
.

AW: Dateiname aus Pfad extrahieren
06.10.2014 23:55:10
Gerd
Hallo Falo!
Wie kann ich aus dem Pfad den Dateinamen extrahieren hat jemand einen Tipp für mich
Application.Run Dir$(Pfad) & "!Berechnen"
Gruß Gerd

AW: Dateiname aus Pfad extrahieren
07.10.2014 00:57:10
Falo
Hallo Gerd,
ich bekomme immer noch eine Fehlermeldung 1004 Excel das Makro Berechnen nicht finden
hast Du noch einen tipp
Mit freundlichen Grüßen aus dem Sauerland
Olaf

Anzeige
AW: Dateiname aus Pfad extrahieren
08.10.2014 21:32:38
Gerd
Hallo Olaf,
die Kopfzeile des Makros Berechnen lautet
Public Sub Berechnen() ?
Diese Prozedur steht in einem allgemeinen Modul, z.B. Modul1, u. dieses Modul ist nicht
mit Option Private Module abgeschottet?
Gruß Gerd
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dateiname aus Pfad extrahieren in Excel VBA


Schritt-für-Schritt-Anleitung

Um den Dateinamen aus einem Pfad in Excel VBA zu extrahieren, folge diesen Schritten:

  1. Öffne den Visual Basic for Applications (VBA) Editor: Drücke ALT + F11, um den Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklicke auf "VBAProject (DeinWorkbookName)" und wähle Einfügen > Modul.

  3. Kopiere und füge den folgenden Code ein:

    Private Sub DateiÖffnenP1_Click()
       Dim Pfad As String
       Dim dateiname As String
    
       ' Pfad aus Zelle A5 auslesen
       Pfad = ActiveWorkbook.Worksheets("System").Range("A5").Value
    
       ' Excel Datei öffnen
       Workbooks.Open Filename:=Pfad
    
       ' Dateiname aus Pfad extrahieren
       dateiname = Mid$(Pfad, InStrRev(Pfad, "\") + 1)
       ' oder alternativ
       ' dateiname = Split(Pfad, "\")(UBound(Split(Pfad, "\")))
    
       ' Makro in der geöffneten Datei ausführen
       Application.Run dateiname & "!Berechnen"
    End Sub
  4. Schließe den VBA Editor und teste das Makro, indem du auf den entsprechenden Button klickst.


Häufige Fehler und Lösungen

  • Fehlermeldung 1004: Wenn du die Fehlermeldung erhältst, dass das Makro nicht gefunden wird, stelle sicher, dass:

    • Der Dateiname korrekt extrahiert wurde.
    • Das Makro Berechnen im richtigen Modul steht (allgemeines Modul versus Tabellenblattmodul).
  • Sonderzeichen im Dateinamen: Wenn der Dateiname Sonderzeichen enthält, setze den Namen in Hochkommas:

    Application.Run "'" & dateiname & "'!Berechnen"

Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, kannst du auch eine Excel-Formel nutzen, um den Dateinamen ohne Pfad zu extrahieren. Eine Möglichkeit ist die Verwendung der Funktion =ZELLE("dateiname"):

=TEIL(ZELLE("dateiname"), FINDEN("[";ZELLE("dateiname")) + 1; FINDEN("]";ZELLE("dateiname")) - FINDEN("[";ZELLE("dateiname")) - 1)

Diese Formel gibt den Dateinamen der aktuellen Arbeitsmappe zurück.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du den Dateinamen aus einem Pfad in Excel VBA extrahieren kannst:

  1. Einfacher Dateiname ohne Pfad:

    dateiname = Mid$(Pfad, InStrRev(Pfad, "\") + 1)
  2. Dateiname in eine Zelle einfügen:

    ActiveSheet.Range("B1").Value = dateiname
  3. Dateiname ohne Endung:

    Dim dateinameOhneEndung As String
    dateinameOhneEndung = Left(dateiname, InStrRev(dateiname, ".") - 1)

Tipps für Profis

  • Verwendung von Dir: Du kannst auch die Funktion Dir verwenden, um den Dateinamen aus dem Pfad auszulesen:

    dateiname = Dir(Pfad)
  • Debugging: Nutze Debug.Print dateiname im Code, um den extrahierten Dateinamen im Direktfenster zu überprüfen.

  • Automatisierung: Du kannst das Makro in eine Schaltfläche einfügen, um den Prozess zu automatisieren und die Benutzerfreundlichkeit zu erhöhen.


FAQ: Häufige Fragen

1. Wie kann ich den Dateinamen ohne Pfad in eine Zelle einfügen?
Verwende den folgenden Code:

ActiveSheet.Range("B1").Value = Mid$(Pfad, InStrRev(Pfad, "\") + 1)

2. Was kann ich tun, wenn das Makro nicht gefunden wird?
Überprüfe, ob das Makro im richtigen Modul steht und ob du den vollständigen Namen (inkl. Tabellenblatt) angibst, wenn nötig.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige