Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dateiendung abschneiden

Forumthread: Dateiendung abschneiden

Dateiendung abschneiden
RainerK
Hallo,
brauch zunächst eine allgemeine Information, da ich mir nun nicht sicher bin, ob das überhaupt so klappt.
Aktuell habe ich mir in einem ExcelSheet die Dateien aufgerufen und mittels "Bedingter Formatierung" ExcelDateien grün, PDF's rot hervorgehoben.
Da ich nun aber die Dateiendung weghaben wollte habe ich den Code
    strFile = Dir$(strPath)
Do Until strFile = ""
lngRow = lngRow + 1
Set objCell = ActiveSheet.Cells(lngRow + firstCell, 6)
objCell.Hyperlinks.Add Anchor:=objCell, _
Address:=strPath & strFile, TextToDisplay:="• " & strFile
ActiveSheet.Cells(lngRow + firstCell, 6).Font.Underline = False
strFile = Dir
Loop

um die Zeile
        strFile = Left(strFile, Len(strFile) - InStr(strFile, ".") - 2)
nach
    Do Until strFile = ""

ergänzt.
Nun wollte ich die Formel
'Wenn Endung .pdf
'ActiveSheet.Cells(lngRow + firstCell, 6).Font.Color = &HFF&
'...
anhängen.
Da ich mir oben aber die Endung genommen habe würde das ja nicht mehr funktonieren.
Geht das trotzdem über VBA?
Gruß Rainer
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Dateiendung abschneiden
10.04.2012 18:47:48
ChrisL
Hi Rainer
Ohne alles umzuschreiben, mach dir einfach zwei Variablen:
Dim strFileMit As String
Dim strFileOhne As String
strFile = Dir$(strPath)
strFileMit = strFile
strFileOhne = Left(strFile, Len(strFile) - InStr(strFile, ".") - 2)
Do Until strFile = ""
lngRow = lngRow + 1
Set objCell = ActiveSheet.Cells(lngRow + firstCell, 6)
objCell.Hyperlinks.Add Anchor:=objCell, _
Address:=strPath & strFileMit, TextToDisplay:="• " & strFileOhne
ActiveSheet.Cells(lngRow + firstCell, 6).Font.Underline = False
strFile = Dir
Loop
If Left(StrFileMit, 3) = "pdf" Then
ActiveSheet.Cells(lngRow + firstCell, 6).Font.Color = &HFF&
End If
cu
Chris
Anzeige
AW: Dateiendung abschneiden
10.04.2012 19:02:57
RainerK
Hallo Chris,
dank für Deine Mithilfe.
Manchmal tut man sich mit den einfachsten Dingen schwer ...
Gruß Rainer
AW: Dateiendung abschneiden
10.04.2012 20:30:22
RainerK
Ein Problem habe ich noch.
In meinem Verzeichnis gebe ich für die Sortierung als Dateinamen auch mal
1.01 Excel-Datei 1 Version 1.00.xls
1.02 Dateiname.pdf
1.03 Dateiname2.doc
Datei x.pdf
Datei y.pdf
Da passt der Code
strfileOhne = Left(strFile, Len(strFile) - InStr(strFile, ".") - 2)

Da ich aber auch andere Dateien drin habe passt dann dieser nichtmehr.
Meine Änderung auf
strfile2 = Left(strFile, (InStr(2, strFile, ".") - 1))

passt zwar dann, mit den Dateien ohne Punkt im Dateinamen aber mit der ersten Varianten nicht mehr.
Wie muss ich dass nun von Rechts lesend angehen?
Anzeige
AW: Dateiendung abschneiden
10.04.2012 22:06:37
RainerK
Hallo,
bin fündig geworden.

strfileOhne = Left(strFile, (InStrRev(strFile, ".") - 1))
Danke für die Mithilfe
Rainer
;
Anzeige

Infobox / Tutorial

Dateiendung in Excel abschneiden und formatieren


Schritt-für-Schritt-Anleitung

Um die Dateiendung in Excel abzuschneiden und die Dateien korrekt zu formatieren, kannst Du folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass die Endung der Datei entfernt wird und das Format entsprechend angepasst wird.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu (Einfügen > Modul).
  3. Kopiere den folgenden Code in das Modul:
Sub DateiendungAbschneiden()
    Dim strFile As String
    Dim strPath As String
    Dim lngRow As Long
    Dim firstCell As Long
    Dim objCell As Range

    strPath = "Dein\Pfad\Hier\" ' Pfad zu deinen Dateien
    strFile = Dir$(strPath)
    lngRow = 0
    firstCell = 1 ' Zeile, in der die Dateien beginnen

    Do Until strFile = ""
        lngRow = lngRow + 1
        Set objCell = ActiveSheet.Cells(lngRow + firstCell, 1)

        ' Dateiendung abschneiden
        strFileOhne = Left(strFile, InStrRev(strFile, ".") - 1)
        objCell.Value = strFileOhne

        ' Hyperlink hinzufügen
        objCell.Hyperlinks.Add Anchor:=objCell, Address:=strPath & strFile, TextToDisplay:=strFileOhne
        ActiveSheet.Cells(lngRow + firstCell, 1).Font.Underline = False

        ' Wenn Endung .pdf, dann Schriftfarbe ändern
        If Right(strFile, 4) = ".pdf" Then
            ActiveSheet.Cells(lngRow + firstCell, 1).Font.Color = &HFF& ' Rot
        End If

        strFile = Dir
    Loop
End Sub
  1. Ändere den strPath in den Pfad, in dem Deine Dateien gespeichert sind.
  2. Führe das Makro aus, indem Du F5 drückst.

Häufige Fehler und Lösungen

  • Fehler: „Komponente nicht gefunden“

    • Lösung: Stelle sicher, dass der Pfad zu den Dateien korrekt ist. Überprüfe den strPath.
  • Fehler: Hyperlinks funktionieren nicht

    • Lösung: Achte darauf, dass der vollständige Dateiname im Hyperlink korrekt ist. Der Code verwendet strPath & strFile, um den Hyperlink zu erstellen.
  • Fehler: Schriftfarbe wird nicht angewendet

    • Lösung: Überprüfe, ob die Bedingung für die PDF-Dateien korrekt ist. Stelle sicher, dass die Endung .pdf in Kleinbuchstaben geprüft wird.

Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du auch eine Formel in Excel nutzen:

  1. Angenommen, Deine Dateinamen befinden sich in Spalte A.
  2. In Zelle B1 kannst Du die folgende Formel verwenden, um die Dateiendung zu entfernen:
=LINKS(A1;SUCHEN(".";A1)-1)
  1. Ziehe die Formel nach unten, um sie auf die anderen Zellen anzuwenden.

Praktische Beispiele

  • Beispiel 1: Angenommen, Du hast die Datei Bericht.pdf, dann wird der Code die Endung entfernen und Bericht in die Zelle schreiben.

  • Beispiel 2: Bei Dateien wie Präsentation.pptx wird das Ergebnis Präsentation sein.


Tipps für Profis

  • Verwende die Funktion InStrRev anstelle von InStr, um die Position des letzten Punktes zu finden. Dies ist nützlich, wenn Dateinamen mehrere Punkte enthalten.

  • Du kannst die Schriftfarbe für andere Dateiendungen anpassen, indem Du weitere Bedingungen in den VBA-Code einfügst.

  • Experimentiere mit der bedingten Formatierung in Excel, um die Sichtbarkeit Deiner Excel-Dateien weiter zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich die Endung für andere Dateiformate anpassen?
Du kannst die Bedingung im VBA-Code ändern, um andere Endungen zu erkennen, z.B. .docx, .xlsx, etc.

2. Funktioniert dieser Code in allen Excel-Versionen?
Der Code sollte in Excel 2010 und höher problemlos funktionieren.

3. Kann ich den Code anpassen, um mehrere Dateiendungen gleichzeitig zu behandeln?
Ja, Du kannst mehrere Bedingungen im Code hinzufügen, um verschiedene Dateiendungen zu prüfen und entsprechend zu formatieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige