Autor: Peter Haserodt  --- Aus Excel VBA - Gruppe: Häufige Fragen

Datei aus Pfad

Autor: Peter Haserodt - Erstellt: --      - Letzte Revision: --
Immer wieder gefragt: Wie erhalte ich den Dateinamen aus einem Pfad.
Nachfolgend Vorschläge (Es gibt viele Lösungsmöglichkeiten).
Die Varianten sind einmal für E97 und darüber und zum zweiten ab E2000 weil erst dort instrrev implementiert wurde.

Der optionale Parameter ist für die Möglichkeit, die Dateiendung wegzulassen.

Die Fehlerbehandlung überlasse ich Ihnen weitgehend aber dies sollte kein Problem sein.
Den reinen Pfad zu ermitteln - nun, dies ist dann auch ganz einfach - oder ?



' **************************************************************
'  Modul:  mdlDateien  Typ = Allgemeines Modul
' **************************************************************

Option Explicit
 
Public Sub TestIt()
 Dim sPfad As String
 sPfad = "C:\test\eet.gg.st.xls"
 MsgBox DateiAusPfadVBA5Plus(sPfad)
 MsgBox DateiAusPfadVBA5Plus(sPfad, False)
 '
 'MsgBox DateiAusPfadVBA6Option(sPfad)
 'MsgBox DateiAusPfadVBA6Option(sPfad, False)
End Sub
 
Private Function DateiAusPfadVBA5Plus(ByVal DerPfad As String, _
Optional MitEndung = True)
 Dim iLast As Integer, iPos As Integer
 'Peter Haserodt
 'Ab E97 möglich
 iPos = InStr(1, DerPfad, "\")
 If iPos = 0 Then Exit Function
 Do
  iLast = iPos
  iPos = InStr(iPos + 1, DerPfad, "\")
 Loop Until iPos = 0
 DateiAusPfadVBA5Plus = Mid(DerPfad, iLast + 1)
 If Not MitEndung Then
  iPos = InStr(1, DateiAusPfadVBA5Plus, ".")
  If iPos = 0 Then Exit Function
  Do
   iLast = iPos
   iPos = InStr(iPos + 1, DateiAusPfadVBA5Plus, ".")
  Loop Until iPos = 0
  DateiAusPfadVBA5Plus = Left(DateiAusPfadVBA5Plus, iLast - 1)
 End If
End Function
 
Private Function DateiAusPfadVBA6Option(ByVal DerPfad As String, _
Optional MitEndung = True)

 'Peter Haserodt
 ' Ab Excel 2000 möglich
 On Error GoTo NoNo ' Lazy - Sollte man eigentlich prüfen - überlasse ich dem Leser
 DateiAusPfadVBA6Option = Mid(DerPfad, InStrRev(DerPfad, "\") + 1)
 If Not MitEndung Then
  DateiAusPfadVBA6Option = _
  Left(DateiAusPfadVBA6Option, InStrRev(DateiAusPfadVBA6Option, ".") - 1)
 End If
 Exit Function
 NoNo:
 DateiAusPfadVBA6Option = ""
End Function


Weitere Artikel der Gruppe: Häufige Fragen Aus Excel VBA
Nach oben