Anzeige
Archiv - Navigation
624to628
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
624to628
624to628
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

CSV-Dateien mit Importfilter per Makro öffnen

CSV-Dateien mit Importfilter per Makro öffnen
22.06.2005 10:58:39
Roger
Hallo VBA-Kenner,
ich habe ein für mich noch unlösbares Problem. Ich muss per Makro hunderte von csv-Dateien bearbeiten, wofür ich sie natürlich erst öffnen muss. Bei den csv-Dateien ist es so, dass die Spaltenüberschriften in der Spalte A durch ";" getrennt hintereinander geschrieben stehen (Überschrift1;Überschrift2; ...). Das Problem ist, dass wenn ich sie per Hand öffne sich Excel den Zelleninhalt der in Spalte A eingetragen ist von allein logisch unterteilt und jedes ";" als Trennzeichen benutz (Überschrift1 | Überschrift2 | ...), dies aber nicht tut wenn ich die Dateien über eine Makro öffne.
Nun ist die Frage, wie ich Excel dazu überrede auch im Makro den Zelleninhalt automatisch zu trennen.
Ich kann leider kein Beispiel einfügen, da es vertrauliche Daten sind.

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

Betreff
Datum
Anwender
Anzeige
AW: CSV-Dateien mit Importfilter per Makro öffnen
22.06.2005 11:00:09
Alexander
Was sagt denn der Makro-Rekorder dazu? Der sollte sowas doch mit aufzeichnen. Versuch's mal!
Gruß, Alex.
AW: CSV-Dateien mit Importfilter per Makro öffnen
22.06.2005 13:06:23
bst
Hallo Roger,
das ist ein alter xl-Bug. Siehe http://support.microsoft.com/default.aspx?scid=kb;de;509480
Versuch mal sowas:
a) Registry, siehe oben.
b) Nimm nach dem Einlesen Daten-Text in Spalten
c) benenne alle Dateien in .txt um und öffne sie dann via OpenText (nimm hierzu den Makrorekorder)
d) Mach's gleich komplett in VBA selber. Vermutlich das Beste.
Wenn keine besonderen Zeichen wie Semikolon, Anführungszeichen und LF in den Daten der CSV sein sollten, tut's etwas einfaches wie unten (zumindestens ab xl2000).
HTH, Bernd
--
Option Explicit

'
' Öffnet eine CSV-Datei und liest sie in die aktuelle Tabelle
'
' fName = Dateiname & Pfad
' FS = das Spaltentrennzeichen (Field Seperator), im Deutschen ein Semikolon
'
Sub ReadfromCSV(fname As String, Optional FS As String = ";")
    Dim hfile As Integer ' Filehandle bzw. Dateinummer
    Dim i As Long ' Zähler über alle Zeilen
    Dim j As Integer ' Zähler über alle Spalten
    Dim oneline As String ' Eine Zeile als String
    Dim myArr As Variant ' eine Zeile in Felder getrennt
    
    hfile = FreeFile
    Open fname For Input As #hfile
    While Not EOF(hfile)
        i = i + 1
        Line Input #hfile, oneline
        myArr = Split(oneline, FS)
        For j = 0 To UBound(myArr)
            Cells(i, 1 + j).NumberFormat = "@"
            Cells(i, 1 + j).Value = myArr(j)
        Next
    Wend
    Close #hfile
End Sub

Sub x()
    ReadfromCSV "d:\daten\excel\beispiele\data\data_d.csv"
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige