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

Teil aus Dateiname auslesen

Forumthread: Teil aus Dateiname auslesen

Teil aus Dateiname auslesen
22.03.2006 10:16:10
Marco
Hallo Leute,
ich lese momentan mittels UCase(Mid(strTempNameProjektdatei, 3, 3)) einen Teil des Dateinamens aus.
Leider ist diese Angabe statisch. Die Dateinamen sind folgendermaßen aufgebaut: x-yyyy-xxx-xx.xls
Ist es möglich so eine Abfrage wie oben zu machen, nur mit dem unterschied, dass die Werte zwischen den ersten "-" genommen werden. Im Beispiel die "yyyy"?
Das Problen ist das sich die Anzahl der Zeichen von "y" ändern kann, weshalb die bisherige Abfrage nicht richtig funktioniert.
Danke für Eure Hilfe
Marco
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Teil aus Dateiname auslesen
22.03.2006 10:31:23
Peter
Servus,
erstmal ne Frage gibt es in Vers. 9.0 schon die Funktion Split ?
MfG Peter
AW: Teil aus Dateiname auslesen
22.03.2006 10:40:36
Peter
Servus,
ist ja auch Wurst, bin mir nicht sicher ab wann es die Funktion gibt. Teste uneren Code mal aus. Bei einer Fehlermeldung, musst du dann halt um so flexibel zu sein, den Code der Länge nach mit einer Schleife durchgehen.
Option Explicit
Sub t()
Dim str As String
str = "x - yyyy - xxx - xx.xls"
MsgBox ReadDatei(str, "-", 2)
str = "xxxx - yyyyyy - xxx - xx.xls"
MsgBox ReadDatei(str, "-", 2)
End Sub
Public Function ReadDatei(Name As String, Trenner As String, _
Startpos As Integer) As String
Dim myarr
Dim intz As Integer
myarr = Split(Name, Trenner)
On Error GoTo Fehler
ReadDatei = myarr(Startpos - 1)
Exit Function
Fehler:
ReadDatei = "Position nicht vergeben"
End Function

MfG Peter
Anzeige
AW: Teil aus Dateiname auslesen
22.03.2006 10:32:52
markus
ändert sich die Anzahl zeichen hinter YYYY auch ?
wenn nicht greif von hinten drauf zu
UCASE(Right(strTempNameProjektdatei,12,4))
AW: Teil aus Dateiname auslesen
22.03.2006 10:46:36
Franz
Hallo Marco,

UCase(Mid(strTempNameProjektdatei, 3, InStr(3, strTempNameProjektdatei, "-") - 3))

Gruß
Franz
Anzeige
AW: Teil aus Dateiname auslesen
22.03.2006 10:49:34
IngGi
Hallo Marco,
so sollte es gehen:
Range("A2") = Mid(strTempNameProjektdatei, InStr(1, strTempNameProjektdatei, "-") + 1, _
InStr(InStr(1, strTempNameProjektdatei, "-") + 1, _
strTempNameProjektdatei, "-") - InStr(1, strTempNameProjektdatei, "-") - 1)
Gruß Ingolf
Anzeige
AW: Teil aus Dateiname auslesen
22.03.2006 11:30:12
Marco
...Danke an alle. Die Version von Franz war die einfachste.
;
Anzeige
Anzeige

Infobox / Tutorial

Teil aus Dateiname auslesen in Excel


Schritt-für-Schritt-Anleitung

Um einen Teil des Dateinamens in Excel auszulesen, kannst du die folgende VBA-Funktion verwenden. Diese Funktion ermöglicht es dir, den gewünschten Teil des Dateinamens dynamisch zu extrahieren, ohne sich auf eine feste Zeichenanzahl zu stützen.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Option Explicit

Sub AuslesenDateiname()
    Dim strTempNameProjektdatei As String
    strTempNameProjektdatei = "x-yyyy-xxx-xx.xls" ' Beispieldateiname
    Dim result As String
    result = Mid(strTempNameProjektdatei, InStr(1, strTempNameProjektdatei, "-") + 1, _
                 InStr(InStr(1, strTempNameProjektdatei, "-") + 1, strTempNameProjektdatei, "-") - InStr(1, strTempNameProjektdatei, "-") - 1)
    MsgBox UCase(result)
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Drücke ALT + F8, wähle AuslesenDateiname und klicke auf Ausführen, um das Ergebnis anzuzeigen.

Häufige Fehler und Lösungen

  • Fehler: "Position nicht vergeben"
    Dieser Fehler tritt auf, wenn der angegebene Trenner nicht gefunden werden kann. Stelle sicher, dass der Dateiname das erwartete Format hat.

  • Lösung: Überprüfe den Dateinamen
    Vergewissere dich, dass der Dateiname mindestens zwei Bindestriche enthält, um die Funktion korrekt auszuführen.

  • Fehler: Undefinierte Variable
    Wenn du eine undefinierte Variable erhältst, überprüfe, ob du das Option Explicit im Modul hast. Dies hilft, Tippfehler bei Variablen zu vermeiden.


Alternative Methoden

Eine andere Methode, um Teile eines Dateinamens auszulesen, ist die Verwendung von Excel-Formeln. Diese Methode ist allerdings weniger flexibel und erfordert eine genauere Struktur des Dateinamens.

  • Verwendung von TEXT-Funktionen:
    Du kannst die Funktionen FIND, LEFT, RIGHT und MID kombinieren, um Teile des Dateinamens zu extrahieren. Beispiel:
=TEIL(A1;FINDEN("-";A1)+1;FINDEN("-";A1;FINDEN("-";A1)+1)-FINDEN("-";A1)-1)

Hierbei ist A1 die Zelle, in der der Dateiname steht.


Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen, die Funktion anzuwenden:

  1. Beispiel mit festem Dateinamen:

    • Dateiname: x-2023-Wetterdaten-01.xls
    • Aufruf der Funktion: UCase(Mid("x-2023-Wetterdaten-01.xls", InStr(1, "x-2023-Wetterdaten-01.xls", "-") + 1, InStr(InStr(1, "x-2023-Wetterdaten-01.xls", "-") + 1, "x-2023-Wetterdaten-01.xls", "-") - InStr(1, "x-2023-Wetterdaten-01.xls", "-") - 1)) gibt 2023 zurück.
  2. Beispiel mit anderen Dateinamen:

    • Dateiname: x-abc-xyz-01.xls
    • Resultat: abc

Tipps für Profis

  • Verwende Option Explicit:
    Dies hilft dir, Fehler im Code frühzeitig zu erkennen, indem es sicherstellt, dass alle Variablen deklariert werden.

  • Teste mit verschiedenen Dateinamen:
    Probiere die Funktion mit verschiedenen Dateinamen aus, um sicherzustellen, dass sie unter verschiedenen Bedingungen funktioniert.

  • Dokumentation:
    Halte eine Dokumentation deiner Funktionen und deren Verwendung bereit, um sie in zukünftigen Projekten einfacher wiederverwenden zu können.


FAQ: Häufige Fragen

1. Wie kann ich den Dateinamen aus einer Zelle auslesen?
Du kannst den Dateinamen in eine Zelle eingeben und dann die VBA-Funktion anpassen, um auf diese Zelle zuzugreifen.

2. Funktioniert dieser Ansatz in allen Excel-Versionen?
Die hier beschriebenen VBA-Funktionen sind in den meisten gängigen Excel-Versionen verfügbar, jedoch kann die Verfügbarkeit der Split-Funktion je nach Version variieren.

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