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

Forumthread: Dateityp per VBA auslesen

Dateityp per VBA auslesen
23.07.2004 19:18:08
Ulrich
Hallo,
wie kann ich per VBA vor oder nach dem Öffnen einer Datei den Dateityp auslesen (Text- Csv- xls-Dateien)?
Gruß Ulrich
Anzeige
AW: Dateityp per VBA auslesen
Udo
Der Typ wird anhand der Extension identifiziert.
Udo
AW: Dateityp per VBA auslesen
Ulrich
Entschuldigung,
ich öffne eine Datei mit Extension xls, die aber im Textformat (csv) gespeichert ist und möchte wissen, ob eine echte Excel-Tabelle oder eine Textvariante vorliegt.
Ulrich
AW: Dateityp per VBA auslesen
Udo
Wie speichert man eine Datei mit der Extension xls im csv- Format,
ist mir neu?
Udo
Anzeige
AW: Dateityp per VBA auslesen
Ulrich
Im SAP-System kann man Listen im Tabellenformat mit der Endung xls abspeichern. Das Format bleibt aber ein Textformat.
Beim manuellen Öffnen müssen einige Angaben gemacht werden, als würde man eine Textdatei mit Endung txt oder csv öffnen.
Ulrich
AW: Dateityp per VBA auslesen
Udo
Sorry, ich passe.
Udo
Dann übernehme ich ... :-)
Ramses
Hallo
ist zwar gewürgt, dafür ist es eigentlich egal welches Dateiformat vorhanden ist.
Voraussetzung ist allerdings, DASS Semikolon als Trennzeichen vorhanden sind.
Die Datei "demo.xls" bei mir ist eine in umbenannte CSV Datei
Option Explicit

Sub OpenCSV_Or_XLS()
Dim myCSV As String
myCSV = "C:\Demo.xls"
Application.Workbooks.Open myCSV, local:=True
If InStr(1, Cells(1, 1), ";") > 0 Then
Columns("A:A").TextToColumns Destination:=Range("A1"), Semicolon:=True
End If
End Sub

Gruss Rainer
Anzeige
AW: Dann übernehme ich ... :-)
Udo
Ich dachte immer, csv bedeutet kommasepariert?
Udo
AW: Dann übernehme ich ... :-)
Ramses
Hallo
Das ist richtig,.... aber nur in den USA ;-)
In Europa wird stattdessen das Semikola verwendet.
Schreib mal in A1 bis D1 jeweils eine 1, speichere die Datei als CSV und öffne die Datei im Editor.
Anyway,.. werden Kommas verwendet muss nur die Anweisung "Semicolon:=True" gegen "Comma:=True" geändert werden ;-)
Gruss Rainer
Anzeige
AW: Dann übernehme ich ... :-)
Udo
Hallo Rainer,
danke für die Erklärung.
Udo
AW: Dateityp per VBA auslesen
Ulrich
Vielen Dank für die Tipps.
Ich bin noch beim Basteln und Probieren.
Gruß Ulrich
;
Anzeige
Anzeige

Infobox / Tutorial

Dateityp per VBA auslesen


Schritt-für-Schritt-Anleitung

Um den Dateityp einer Datei in Excel per VBA auszulesen, kannst Du den folgenden Code verwenden. Dieser Code öffnet eine Datei und überprüft, ob das erste Feld ein Semikolon als Trennzeichen enthält, was darauf hinweist, dass es sich um eine CSV-Datei handelt.

Sub OpenCSV_Or_XLS()
    Dim myCSV As String
    myCSV = "C:\Demo.xls" ' Pfad zur Datei anpassen
    Application.Workbooks.Open myCSV, local:=True
    If InStr(1, Cells(1, 1), ";") > 0 Then
        Columns("A:A").TextToColumns Destination:=Range("A1"), Semicolon:=True
    Else
        MsgBox "Es handelt sich um eine echte Excel-Datei."
    End If
End Sub

Dieser Code erfordert Excel 2007 oder höher, um die Funktionen korrekt nutzen zu können.


Häufige Fehler und Lösungen

  • Fehler: Datei wird nicht gefunden

    • Stelle sicher, dass der angegebene Pfad zur Datei korrekt ist. Überprüfe die Dateierweiterung.
  • Fehler: Unerwarteter Dateityp

    • Dies kann passieren, wenn die Datei nicht im erwarteten Format vorliegt. Verwende die Option local:=True beim Öffnen der Datei, um lokale Einstellungen zu berücksichtigen.

Alternative Methoden

Eine alternative Methode, um den Dateityp auszulesen, ist die Verwendung von Excel-Funktionen anstelle von VBA. Du kannst die Funktion TEXT() in einer Zelle verwenden, um den Inhalt zu analysieren, wenn die Datei bereits geöffnet ist.

  • Beispiel:
    =IF(ISNUMBER(SEARCH(";", A1)), "CSV", "Excel-Datei")

Diese Funktion prüft, ob das erste Feld ein Semikolon enthält und gibt entsprechend den Dateityp zurück.


Praktische Beispiele

Wenn Du eine Datei aus einem SAP-System exportierst, kann diese als .xls gespeichert, aber im CSV-Format sein. Hier ist ein Beispiel, wie Du dies in der Praxis umsetzen kannst:

  1. Speichere die Datei aus dem SAP-System ab.
  2. Verwende den oben genannten VBA-Code, um den Inhalt zu überprüfen.
  3. Passe den Code an, um unterschiedliche Trennzeichen zu berücksichtigen, falls notwendig.

Tipps für Profis

  • Verwende Fehlerbehandlung: Integriere Fehlerbehandlungsroutinen in Deinen VBA-Code, um unerwartete Probleme zu vermeiden, z. B. durch Verwendung von On Error Resume Next.

  • Testen mit verschiedenen Formaten: Teste Deinen Code mit verschiedenen Dateiformaten, um sicherzustellen, dass er robust genug ist, um alle Szenarien abzudecken.


FAQ: Häufige Fragen

1. Wie kann ich den Dateityp einer Datei vor dem Öffnen erkennen?
Du kannst die Dateierweiterung in VBA überprüfen, bevor Du die Datei öffnest, indem Du Right() und InStrRev() verwendest.

2. Welche Trennzeichen sollte ich verwenden?
In Europa wird häufig das Semikolon als Trennzeichen verwendet, während in den USA das Komma üblich ist. Achte darauf, den Code entsprechend anzupassen.

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