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

Forumthread: CSV-Datei mit VBA erstellen und befüllen

CSV-Datei mit VBA erstellen und befüllen
Axel
Hallo,
ich habe gerade einige Schwierigkeiten: Ich habe eine Datei die mit sehr vielen Berechnungen gefüllt ist. Die Ergebnisse will ich nun in verschiedene csv Dateien (Weiterverarbeitung) kopieren. Leider funktioniert das nicht so wie es soll:
1. Excel erstellt in dem Ordner in dem sich die Hauptdatei die CSV Datei, aber gleichzeitig legt sie noch Mappen unter "Eigene Dateien" an. Die will ich aber nicht, zumal sie leer sind.
2. Die Daten werden nicht in die gewünschte CSV-Datei kopiert sondern in die Hauptdatei.
3. Der Name des Tabellen Blattes erhält in der CSV Datei noch ein "-" hinten dran...warum? z.B. "Auto-"
Anbei mein Code, vielleicht habt ihr eine Idee!

Application.DisplayAlerts = False 'Schaltet Die Abfrage nach dem Überschreiben ab
Set NewBook = Workbooks.Add
With NewBook
.Title = "Auto"
.Subject = "Daten" 'Brauche ich das?
.SaveAs FileFormat:=xlCSV
.SaveAs Filename:=Pfad & Name & ".csv"
End With
Workbooks("Auto.csv").Activate
'Daten ist ein Array (Variant) der 20 Spalten und 2000 Zeilen enthält
Range(Cells(1, 1), Cells(Zeile, Spalte)) = Daten
Workbooks("Auto.csv").Close
Application.DisplayAlerts = True

Vielen Dank und frohe Ostern!
Axel
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: CSV-Datei mit VBA erstellen und befüllen
02.04.2010 15:56:10
ChristianM
Hallo Axel,
so ohne Anfang und Ende in deinem Code ist es schwierig...
...aber schreib doch einfach ein Textfile mit gewünschtem Delimiter und speichere dies als csv.
Unter xl2003 funktioniert das tadellos.
Gruß
Christian
AW: CSV-Datei mit VBA erstellen und befüllen
05.04.2010 17:05:20
Axel
Hi,
war leider die letzten Tage unterwegs ;)
Eigentlich ist dies fast mein gesamter Code, der einzige Teil der noch fehlt ist der Initialisierungspart und die Deklaration der Variablen.
Das hat aber meines Wissens nach keinen Einfluss auf die Erstellung der Datei. Aber vielleicht liege ich ja auch falsch, daher hier mein Code:

Dim Pfad As String, Name As String
Dim Spalte As Integer, Zeile As Integer
Dim Daten()
Daten = Range("AA2:AG2001")
Pfad = ActiveWorkbook.Path & "\"
Name = "Versuchsdaten"
Spalte=7
Zeile= 2000
at Christian: Wenn ich ein Textfile erstelle, habe ich das selbe Problem...
Gruß
Axel
Anzeige
AW: CSV-Datei mit VBA erstellen und befüllen
05.04.2010 18:21:18
ChristianM
hallo,
ist es denn so schwierig eine Prozedur komplett zu posten? Scheinbar ja. Nun denn, so bastelt sich der geneigte Helfer also die Infos aus den einzelnen Postings zusammen.
mein Vorschlag:

Option Explicit
Sub TestIt()
Dim strFile As String
Dim wkb As Workbook
strFile = ThisWorkbook.Path & "\Test.csv"
Set wkb = Workbooks.Add
With ThisWorkbook.Sheets("Tabelle1")
wkb.Sheets(1).Cells(1, 1).Resize(2000, 7).Value = .Cells(2, 27).Resize(2000, 7).Value
End With
Application.DisplayAlerts = False
wkb.SaveAs Filename:=strFile, FileFormat:=xlCSV
wkb.Close
Application.DisplayAlerts = True
Set wkb = Nothing
End Sub
Gruß
Christian
@Axel: mit "schreibe ein Textfile" meinte ich nicht "speichern als Textfile"
Anzeige
AW: CSV-Datei mit VBA erstellen und befüllen
05.04.2010 21:54:44
Axel
Hallo Christian,
danke für deine Hilfe, jetzt funktioniert es :)
Gruß
Axel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

CSV-Datei mit Excel VBA erstellen und befüllen


Schritt-für-Schritt-Anleitung

Um eine CSV-Datei mit VBA zu erstellen, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (deinWorkbookName)" > Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Option Explicit
    Sub CSVDateiErstellen()
       Dim strFile As String
       Dim wkb As Workbook
       strFile = ThisWorkbook.Path & "\DeineDatei.csv"
       Set wkb = Workbooks.Add
    
       With ThisWorkbook.Sheets("Tabelle1")
           wkb.Sheets(1).Cells(1, 1).Resize(2000, 7).Value = .Cells(2, 27).Resize(2000, 7).Value
       End With
    
       Application.DisplayAlerts = False
       wkb.SaveAs Filename:=strFile, FileFormat:=xlCSV
       wkb.Close
       Application.DisplayAlerts = True
       Set wkb = Nothing
    End Sub
  4. Passe die Parameter an: Ändere DeineDatei.csv, um den gewünschten Dateinamen festzulegen.

  5. Führe das Makro aus: Drücke F5 oder gehe zu "Ausführen" > "Sub/UserForm ausführen".


Häufige Fehler und Lösungen

  • Problem: Leere CSV-Dateien werden erstellt.

    • Lösung: Stelle sicher, dass die richtigen Zellbereiche angegeben sind. Überprüfe, ob die Daten in Range korrekt sind.
  • Problem: Der Name des Tabellenblattes hat ein "-" am Ende.

    • Lösung: Überprüfe den Code, um sicherzustellen, dass keine zusätzlichen Zeichen beim Speichern angehängt werden.
  • Problem: Die CSV-Datei wird nicht im gewünschten Ordner gespeichert.

    • Lösung: Achte darauf, dass der Pfad in strFile korrekt festgelegt ist.

Alternative Methoden

Wenn du CSV-Dateien ohne VBA erstellen möchtest, kannst du die Funktion "Speichern unter" in Excel verwenden. Wähle im Dialogfeld CSV-Datei als Format aus.

Eine weitere Möglichkeit ist die Verwendung eines Texteditors, um die Daten manuell zu speichern. Exportiere die Daten als Textdatei und ändere die Erweiterung in .csv.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du Daten aus einem bestimmten Bereich in eine CSV-Datei exportieren kannst:

Sub ExportToCSV()
    Dim myFile As String
    Dim cellData As Range
    Dim r As Long, c As Long
    myFile = "C:\DeinPfad\export.csv" ' Pfad anpassen

    Open myFile For Output As #1
    For r = 1 To 2000
        For c = 1 To 7
            If c = 7 Then
                Print #1, Cells(r, c).Value
            Else
                Print #1, Cells(r, c).Value & ";"; ' Verwende ";" als Trennzeichen
            End If
        Next c
    Next r
    Close #1
End Sub

Tipps für Profis

  • Verwende Application.WorksheetFunction für komplexe Berechnungen, bevor du die Daten in die CSV-Datei schreibst.
  • Automatisiere den Prozess, indem du das Makro regelmäßig ausführst, um Daten in eine CSV-Datei zu exportieren.
  • Teste dein Makro in einer Kopie deiner Arbeitsmappe, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Wie erstelle ich eine CSV-Datei?
Du kannst eine CSV-Datei in Excel erstellen, indem du die Funktion "Speichern unter" verwendest oder ein VBA-Makro, wie oben beschrieben, nutzt.

2. Welche Excel-Version benötige ich für die VBA-Methoden?
Die oben genannten Methoden funktionieren in den meisten modernen Excel-Versionen, einschließlich Excel 2007 und höher.

3. Was ist der Unterschied zwischen CSV und Excel-Dateien?
Eine CSV-Datei ist eine einfache Textdatei, die Daten in einem kommagetrennten Format speichert, während Excel-Dateien zusätzliche Formatierungen und Funktionen unterstützen.

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