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

Verzeichnispfad entfernen - Dateinamen beibehalten

Forumthread: Verzeichnispfad entfernen - Dateinamen beibehalten

Verzeichnispfad entfernen - Dateinamen beibehalten
23.08.2003 03:00:36
Sascha-Michael
Hallo,
Ich möchte gerne den Verzeichnispfad in einer Zelle entfernen aber den Dateinamen beibehalten. Beispiel:
vorher:
E:\Testbereich\Bilder\Gigabyte\Gigabyte_7n400_10_big.jpg
nachher:
Gigabyte_7n400_10_big.jpg
Bin für eine Lösung sehr dankbar !
Gruß
Sascha-Michael
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verzeichnispfad entfernen - Dateinamen beibehalten
23.08.2003 04:46:09
Heinz Ulm
Hallo Sascha-Michael,
mal zur Anregung:
=RECHTS(ZELLE("Dateiname";A1);LÄNGE(ZELLE("Dateiname";A1))-LÄNGE(INFO("Verzeichnis")))
dann bekommst du den Dateinamen + Tabelle
Gruß Heinz

AW: Verzeichnispfad entfernen - Dateinamen beibehalten
23.08.2003 09:01:09
micha
Hi Sacha-Michael,
ich habe in diesem Forum mal was ähnliches gefunden - evtl. hilft es Dir (ist 'ne VBA-Lösung)
Bau Dir einfach 'ne neue Exceldatei, wechsle mit ALT+F11 in den VBA-Editor, füge ein Modul ein, und kopiere dort den Code hinein.
Gruss Micha
'Dieser Bereich kann entfallen, wenn der Variable 'Laufwerk' ein fester Wert zugewiesen wird.'
Public Type BROWSEINFO '
hOwner As Long '
pidlRoot As Long '
pszDisplayName As String '
lpszTitle As String '
ulFlags As Long '
lpfn As Long '
lParam As Long '
iImage As Long '
End Type '
Declare

Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare 

Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Private z!

Sub Dateisuche(Laufwerk, Dateien)
Dim tmp, Wdhlg, Dateiname As String
On Error Resume Next
If Right(Laufwerk, 1) <> "\" Then Laufwerk = Laufwerk + "\"
tmp = Dir(Laufwerk & Dateien)
Do While Len(tmp)
Dateiname = Laufwerk & tmp
Application.StatusBar = Dateiname
'Die folgenden Angaben können auch in eine Feldvariable
'oder in eine Listbox eingelesen werden:
Cells(z, 1).Select
Cells(z, 1) = Laufwerk & tmp                'Pfad
Cells(z, 2) = FileLen(Laufwerk & tmp)       'Größe
Cells(z, 3) = FileDateTime(Laufwerk & tmp)  'Datum/Zeit
Cells(z, 4) = tmp                           'nur Dateiname
z = z + 1
tmp = Dir()
Loop
tmp = Dir(Laufwerk, vbDirectory)
Do While Len(tmp)
If (tmp <> ".") And (tmp <> "..") Then
If (GetAttr(Laufwerk & tmp) And vbDirectory) = vbDirectory Then
Dateisuche Laufwerk & tmp, Dateien
z = z - 1
Wdhlg = Dir(Laufwerk, vbDirectory)
z = z + 1
Do While Wdhlg <> tmp
Wdhlg = Dir()
Loop
End If
End If
tmp = Dir()
Loop
On Error GoTo 0
Application.StatusBar = False
End Sub

'Aufruf mit dem folgenden Makro - Einer Schaltfläche zuweisen

Sub Suchen()
Dim Laufwerk$, Dateien$
'Erste Zeile, in der eine Eintragung erfolgt (z)
'z = 2 'Originalzeile (hier wird immer in A2 geschrieben
z = Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
'Alte Eintragungen löschen
'[a2:e50000] = ""
'Den Variablen Laufwerk und Dateien kann auch ein Wert direkt zugewiesen werden.
Laufwerk = GetDirectory("Bitte einen Ordner wählen")    'Ersatz: ... = C:\Eigene Dateien"
If Laufwerk = "" Then Exit Sub
'Ersatz: Dateien = "*.*"
Dateien = InputBox("Nach welchen Dateien soll in" & Chr(10) & "      " & Laufwerk & Chr(10) & "gesucht werden (z. B. *.xls)?", "Dateityp", "*.*")
If Dateien = "" Then Exit Sub
Dateisuche Laufwerk, Dateien
End Sub

'Ruft das Dialogfeld zur Ordnerauswahl auf

Function GetDirectory(Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
With bInfo
.pidlRoot = 0&
.lpszTitle = Msg
.ulFlags = &H1
End With
x = SHBrowseForFolder(bInfo)
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function


Anzeige
Anzeige

Infobox / Tutorial

Verzeichnispfad entfernen und Dateinamen beibehalten


Schritt-für-Schritt-Anleitung

Um den Verzeichnispfad in Excel zu entfernen und nur den Dateinamen beizubehalten, kannst Du folgende Formel verwenden:

  1. Angenommen, der vollständige Dateipfad befindet sich in Zelle A1.

  2. Trage die folgende Formel in eine andere Zelle ein (z.B. B1):

    =RECHTS(ZELLE("Dateiname";A1);LÄNGE(ZELLE("Dateiname";A1))-LÄNGE(INFO("Verzeichnis")))
  3. Drücke Enter. Jetzt siehst Du nur den Dateinamen ohne den Verzeichnispfad.


Häufige Fehler und Lösungen

Fehler 1: Formel funktioniert nicht

  • Vergewissere Dich, dass die Zelle A1 tatsächlich einen gültigen Dateipfad enthält. Wenn der Pfad nicht korrekt ist, wird die Formel nicht das gewünschte Ergebnis liefern.

Fehler 2: Excel zeigt "Zirkulare Bezug"

  • Stelle sicher, dass Du die Formel in einer anderen Zelle als der Zelle verwendest, die den Dateipfad enthält.

Alternative Methoden

Falls Du mit VBA arbeiten möchtest, kannst Du die folgende Methode nutzen:

  1. Öffne den VBA-Editor mit ALT + F11.

  2. Füge ein neues Modul ein.

  3. Kopiere den folgenden Code in das Modul:

    Sub DateinameExtrahieren()
       Dim filePath As String
       Dim fileName As String
    
       filePath = "E:\Testbereich\Bilder\Gigabyte\Gigabyte_7n400_10_big.jpg"
       fileName = Dir(filePath)
    
       MsgBox "Der Dateiname ist: " & fileName
    End Sub
  4. Führe das Makro aus, um den Dateinamen anzuzeigen.


Praktische Beispiele

Wenn Du beispielsweise den Dateinamen aus dem folgenden Pfad extrahieren möchtest:

E:\Testbereich\Bilder\Gigabyte\Gigabyte_7n400_10_big.jpg

Nutze die oben angegebene Formel oder das VBA-Skript. Der resultierende Dateiname wird Gigabyte_7n400_10_big.jpg sein.


Tipps für Profis

  • Wenn Du oft mit langen Dateipfaden arbeitest, kann es hilfreich sein, die Formel in eine benutzerdefinierte Funktion umzuwandeln. So kannst Du sie einfacher auf verschiedene Zellen anwenden.
  • Bei sehr langen Dateipfaden (wie es bei „excel dateipfad zu lang“ vorkommen kann), achte darauf, dass Du den Pfad kürzer machst oder die Datei an einen anderen Ort verschiebst.

FAQ: Häufige Fragen

1. Wie kann ich lange Dateinamen löschen, ohne die Datei zu verlieren? Du kannst den Dateinamen einfach mit der oben beschriebenen Methode extrahieren und die Datei dann umbenennen, indem Du nur den Dateinamen verwendest.

2. Funktioniert diese Methode in allen Excel-Versionen? Ja, die Formel und das VBA-Skript sind in den meisten Excel-Versionen anwendbar, jedoch können sich einige Details je nach Version unterscheiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige