Herbers Excel-Forum - das Archiv

Csv-Datei...

    Bild

    Betrifft: Csv-Datei...
    von: Rob
    Geschrieben am: 30.09.2003 10:18:18
    Hallo Forum!

    Ich muss hier ein Makro erstellen, das eine csv Datei einliest...
    Habe mich schon etwas im Forum umgeschaut und auch etwas gefunden.

    Diesen Quellcode hab ich mir zusammengeklaut:

    Option Explicit


    Sub Import()
    Dim fFile1 As Variant, neuFile As Variant
    Dim DateiName1 As String, neuDateiName As String
    fFile1 = Application.GetOpenFilename("CSV-Report (*.csv), *.csv")
    If fFile1 = False Then
    If Workbooks.Count = 1 Then
    Application.Quit
    Exit Sub
    Else
    ThisWorkbook.Close
    Exit Sub
    End If
    End If
    Workbooks.Open FileName:=fFile1
    DateiName1 = ActiveWorkbook.Name
    neuFile = Application.GetSaveAsFilename("Wochenbericht.xls")
    If neuFile = False Then
    MsgBox "Der Vorgang wird vorzeitig abgebrochen."
    End If
    Workbooks.Add
    ActiveWorkbook.SaveAs neuFile
    neuDateiName = ActiveWorkbook.Name
    End Sub
    




    Mein Problem ist, dass die Werte nicht in der neuen Datei angezeigt, bzw. gespeichert werden. Kenne mich leider gar nicht mit VB aus...
    Kann mir jemand helfen, wo mein Problem liegt?

    Gr. Rob
    Bild

    Betrifft: AW: Csv-Datei...
    von: geri
    Geschrieben am: 30.09.2003 11:23:32
    Hallo Rob

    versuche es mal so

    Sub Read_Extern_File()
    'Hilfsvariable für Anzahl Datensätze
    Dim Text1 As String
    'Variablen für den Array nötig
    Dim TxtLines As Long, i As Long
    Dim TextArr As Variant
    Dim ReadFile As String
    'Dialog öffnen auf Basis von *.txt, *.log oder *.dat Files
    ReadFile = Application.GetOpenFilename("DAT Files (*.txt; *.log; *.dat),")
    'Schliessen einer geöffneten Datei
    Close #1
    '1. Öffnen der Datei
    'Den Namen und Pfad bitte anpassen
    Open ReadFile For Input As #1
    'Die anzahl ist nötig um die Grösse des Arrays zu deklarieren
    'Zähler auf 0 setzen
    TxtLines = 0
    Do While Not EOF(1) ' Schleife bis Dateiende.
    Input #1, Text1 ' Hilfsvariable zum einlesen verwenden
    '         Zähler hochzählen
    TxtLines = TxtLines + 1
    Loop
    'Schliessen der Datei weil Dateiende erreicht wurde
    Close #1
    'Erneutes Öffnen um zum Dateianfang zu kommen
    Open ReadFile For Input As #1 ' Datei zum Einlesen öffnen.
    'Array neu auf die Anzahl der Linien initialisieren
    ReDim TextArr(TxtLines)
    'Einlesen der Dateien in das Array
    For i = 1 To TxtLines
    Input #1, TextArr(i)
    Next i
    Close #1
    'Daten in aktuelles Sheet schreiben
    For i = 1 To TxtLines
    Cells(i, 1) = TextArr(i)
    Next i
    End Sub
    




    gruss geri
    Bild

    Betrifft: AW: Csv-Datei...
    von: Rob
    Geschrieben am: 30.09.2003 11:45:13
    Danke für die Antwort!
    Leider bekomme ich eine Fehlermeldung, wenn ich das Makro ausführe
    -->Fehler beim Kompilieren... Variable erforderlich. Zuweisung an diesen Ausdr. nicht möglich.
    Als Fehler wird --> TextArr(i) angezeigt.

    Muss man TextArr als Array vorher deklarieren?

    GR.Rob
    Bild

    Betrifft: AW: Csv-Datei...
    von: geri
    Geschrieben am: 30.09.2003 11:51:51
    also bei mir läufts mit OFF 2000 ohne Fehlermeldung

    gruss geri
    Bild

    Betrifft: AW: Csv-Datei...
    von: Rob
    Geschrieben am: 30.09.2003 11:54:00
    Dann liegts an excel '97.
    Ich probiers heute abend zu Hause...

    THX, Rob
     Bild