Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Csv-Datei...

    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
      


    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


      


    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


      


    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


      


    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