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

Forumthread: Daten aus .csv Datei in Excel einfügen

Daten aus .csv Datei in Excel einfügen
09.12.2014 15:06:39
Tim
Hallo,
ich hab eine Frage bezüglich des o.g. Themas.
Da ich relativ schnell zum Ergebnis kommen muss, dachte ich mir ich hole mir ein wenig Hilfe.
Es geht darum, einzelne Zellen bzw. Spalten aus einer .csv Datei mittels eines Buttons in eine Excel-Tabelle einzufügen. Wie ich bisher erfahren habe, funktioniert das mit dem VBA-Script, richtig?
Wie ist der Standardaufbau für solch ein Script?
Vielen Dank schonmal!!

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Daten aus .csv Datei in Excel einfügen
09.12.2014 15:57:34
Daniel
HI
öffne die Datei normal über Workbooks.Open "Dateiname" , bei einem deutschen CSV mit dem zusätzlichen Parameter Local:=True.
dann kannst du die Werte wie aus einer normalen Exceldatei mit Copy-Paste übertragen.
würde in etwa so aussehen:
dim wbQuelle as Workbook
'--- CSV-Datei öffnen
Set wbQuelle = Workbooks.Open "C:\DeinPfad\DeineCSV-Datei.csv", Local:=true
'--- Spalten kopieren
wbQuelle.Sheets(1).Columns(3).Copy
ThisWorkbook.Sheets("Zieltabelle").Cells(1, 1).PasteSpecial xlpastevalues
'--- CSV-Datei wieder schließen
wbQuelle.close False
Gruß Daniel

Anzeige
AW: Daten aus .csv Datei in Excel einfügen
09.12.2014 16:08:58
fcs
Hallo Tim,
hier das Makro-Grundgerüst, um Daten aus einer CSV-Datei in ein Exceltabellenblatt zu übernehmen.
Gruß
Franz
Sub GetCSV_Data()
Dim wkbCSV As Workbook, wksCSV As Worksheet
Dim wkbZiel As Workbook, wksZiel As Worksheet
Dim lngZeile As Long, lngSpalte As Long
'Zieldatei merken/setzen
Set wkbZiel = ActiveWorkbook
'CSV-Datei auswählen/öffnen
With Application.FileDialog(msoFileDialogOpen)
.Title = "Bitte CSV-Dateien auswählen"
.InitialView = msoFileDialogViewDetails
.InitialFileName = "*.csv"
.AllowMultiSelect = False
If .Show = -1 Then
Set wkbCSV = Workbooks.Open(Filename:=.SelectedItems(1), Local:=True) 'Lokal:=True: CSV- _
Inhalte sind lokal formatiert (Datum/Zeit, Dezimalzahlen)
Set wksCSV = wkbCSV.Worksheets(1)
End If
End With
If wkbCSV Is Nothing Then Exit Sub
With wksCSV
'Zieltabelle setzen
Set wksZiel = wkbZiel.Worksheets("Tabelle1")
'Letzte Daten-Zeile in CSV
lngZeile = .UsedRange.Row + .UsedRange.Rows.Count - 1
'Inhalte aus CSV-Datei in Zieltabellenblatt einfügen
'Daten aus B2 in B1 eintragen
wksZiel.Cells(1, 2).Value = .Cells(2, 2).Value
'Daten aus Spalte D kopieren und ab C2 einfügen
.Range(.Cells(1, 4), .Cells(lngZeile, 4)).Copy Destination:=wksZiel.Range("C2")
'usw.
End With
'CSV-Datei wieder schließen
wkbCSV.Close savechanges:=False
End Sub

Anzeige
AW: Daten aus .csv Datei in Excel einfügen
10.12.2014 14:18:12
Tim
Hallo,
danke schonmal für die schnellen Antworten.
Ich muss doch gestehen, dass mein VBA Wissen noch ziemlich dünn ist deswegen nochmal eine genauere Beschreibung meines Problems.
In der .csv Datei habe ich verschiedene Daten in folgendem Format:
"09.12.2014 05:27:26";"Meldung XY";"Maschine X"
"09.12.2014 06:27:26";"Meldung XX";"Maschine Y"
Diese Daten möchte ich nun in eine Excel Tabelle umwandeln:
In jeder Spalte soll eine Meldung erfasst werden und z.B. in Spalte A das Datum, Spalte B die Meldung und Spalte C die Maschine.
Dies soll auf Knopfdruck geschehen mit einem Excel Button.
Wäre genial wenn mir jemand noch genauere Hilfe geben könnte.
MfG
Tim

Anzeige
AW: Daten aus .csv Datei in Excel einfügen
10.12.2014 15:39:41
fcs
Hallo Tim,
ich hab das Makro jetzt so umgebaut, dass die CSV-Datei in einem Excelblatt geöffnet wird, plus etwas formatieren und Titelzeile einfügen.
Zum Schluß wird der Speichern-Unter-Dialog angezeigt, um die Datei als Excel-Arbeitsmappe zu speichern.
Die Zeilen zum Kopieren von Daten in ein anderes Blatt hab ich zu Kommentaren gemacht.
Die Schaltfläche zum Starten des Makros wählst aus den Formular-Steuerelementen aus und fügst sie im Tabellenblatt ein.
Anschliessend weist du im Dialog das Makro "GetCSV_Data" der Schaltfläche zu.
Gruß
Franz
'Makro in einem allgemeinen Modul der Datei einfügen
Sub GetCSV_Data()
Dim wkbCSV As Workbook, wksCSV As Worksheet
Dim wkbZiel As Workbook, wksZiel As Worksheet
Dim lngZeile As Long, lngSpalte As Long
'Zieldatei merken/setzen
Set wkbZiel = ActiveWorkbook
'CSV-Datei auswählen/öffnen
With Application.FileDialog(msoFileDialogOpen)
.Title = "Bitte CSV-Dateien auswählen"
.InitialView = msoFileDialogViewDetails
.InitialFileName = "*.csv"
.AllowMultiSelect = False
If .Show = -1 Then
Set wkbCSV = Workbooks.Open(Filename:=.SelectedItems(1), Local:=True) 'Lokal:=True: CSV- _
Inhalte sind lokal formatiert (Datum/Zeit, Dezimalzahlen)
Set wksCSV = wkbCSV.Worksheets(1)
End If
End With
If wkbCSV Is Nothing Then Exit Sub
With wksCSV
'Zieltabelle setzen
Set wksZiel = wkbZiel.Worksheets("Tabelle1")
'Spalte A Formatieren
.Columns(1).NumberFormat = "DD.MM.YYYY hh:mm:ss"
'Spaltenbreiten automaisch anpassen
.Columns.AutoFit
'Titelzeile einfügen
.Rows(1).Insert
.Cells(1, 1) = "Datum Zeit"
.Cells(1, 2) = "Meldung"
.Cells(1, 3) = "Maschine"
'Titelzeile fixieren:
Range("A2").Select
ActiveWindow.FreezePanes = True
'Letzte Daten-Zeile in CSV
'    lngZeile = .UsedRange.Row + .UsedRange.Rows.Count - 1
'Inhalte aus CSV-Datei in Zieltabellenblatt einfügen
'Daten aus B2 in B1 eintragen
'    wksZiel.Cells(1, 2).Value = .Cells(2, 2).Value
'Daten aus Spalte D kopieren und ab C2 einfügen
'    .Range(.Cells(1, 4), .Cells(lngZeile, 4)).Copy Destination:=wksZiel.Range("C2")
'usw.
End With
'CSV-Datei als Excel-Datei speichern
If Application.Dialogs(xlDialogSaveAs).Show(wksCSV.Name, 51) = False Then '51 = xlsx-Format
'Speichern wurde abgebrochen - CSV-Datei wird ohne Speichern wieder geschlossen
wkbCSV.Close savechanges:=False
Exit Sub
End If
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Daten aus einer .csv Datei in Excel einfügen


Schritt-für-Schritt-Anleitung

Um eine .csv Datei in Excel einzufügen, kannst du ein VBA-Skript verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.

  2. Gehe zu den Entwicklertools und öffne den VBA-Editor (Alt + F11).

  3. Füge ein neues Modul hinzu und kopiere den folgenden Code hinein:

    Sub GetCSV_Data()
       Dim wkbCSV As Workbook, wksCSV As Worksheet
       Dim wkbZiel As Workbook, wksZiel As Worksheet
       Dim lngZeile As Long
    
       ' Zieldatei merken/setzen
       Set wkbZiel = ActiveWorkbook
    
       ' CSV-Datei auswählen/öffnen
       With Application.FileDialog(msoFileDialogOpen)
           .Title = "Bitte CSV-Dateien auswählen"
           .InitialFileName = "*.csv"
           .AllowMultiSelect = False
           If .Show = -1 Then
               Set wkbCSV = Workbooks.Open(Filename:=.SelectedItems(1), Local:=True)
               Set wksCSV = wkbCSV.Worksheets(1)
           End If
       End With
    
       If wkbCSV Is Nothing Then Exit Sub
    
       ' Zieltabelle setzen
       Set wksZiel = wkbZiel.Worksheets("Tabelle1")
    
       ' Letzte Daten-Zeile in CSV
       lngZeile = wksCSV.UsedRange.Rows.Count
    
       ' Inhalte aus CSV-Datei in Zieltabellenblatt einfügen
       wksCSV.Range("A1:C" & lngZeile).Copy Destination:=wksZiel.Range("A1")
    
       ' CSV-Datei wieder schließen
       wkbCSV.Close savechanges:=False
    End Sub
  4. Führe das Makro aus, um die Daten zu importieren.


Häufige Fehler und Lösungen

  • Fehler: Die CSV-Datei wird nicht gefunden.

    • Lösung: Überprüfe den Pfad zur CSV-Datei und stelle sicher, dass sie im angegebenen Verzeichnis vorhanden ist.
  • Fehler: Daten werden nicht korrekt formatiert.

    • Lösung: Achte darauf, dass du beim Öffnen der CSV-Datei den Parameter Local:=True verwendest, um lokale Formate korrekt zu importieren.
  • Fehler: Das Makro läuft nicht.

    • Lösung: Stelle sicher, dass die Entwicklertools in Excel aktiviert sind und die richtigen Berechtigungen für Makros gesetzt sind.

Alternative Methoden

Eine alternative Methode, um eine CSV-Datei in Excel zu importieren, ist direkt über das Menü:

  1. Gehe zu Daten > Daten abrufen > Aus Text/CSV.
  2. Wähle die gewünschte CSV-Datei aus.
  3. Folge den Anweisungen im Import-Assistenten, um die Daten im gewünschten Format in Excel anzuzeigen.

Diese Methode ist besonders nützlich, wenn du nicht mit VBA arbeiten möchtest.


Praktische Beispiele

Hier sind einige Beispiele, wie du mit Excel VBA CSV-Daten effektiv verwalten kannst:

  • Einzelne Spalten importieren: Du kannst das VBA-Skript so anpassen, dass nur bestimmte Spalten aus der CSV-Datei in die Excel-Tabelle importiert werden.

  • Daten formatieren: Nach dem Import kannst du mit VBA auch die Formatierung der Zellen ändern, um sie besser lesbar zu machen. Beispiel:

    wksZiel.Columns(1).NumberFormat = "DD.MM.YYYY hh:mm:ss"
  • Daten in eine Grafik umwandeln: Nach dem Import der Daten kannst du auch Diagramme erstellen, um die Informationen visuell darzustellen.


Tipps für Profis

  • Automatisiere den Prozess: Lege eine Schaltfläche in deinem Excel-Dokument an, um das Makro mit einem Klick auszuführen.
  • Fehlerbehandlung einbauen: Implementiere Error-Handling in dein VBA-Skript, um mögliche Laufzeitfehler abzufangen und entsprechend zu reagieren.
  • CSV-Datei regelmäßig aktualisieren: Wenn du regelmäßig mit CSV-Dateien arbeitest, kannst du die Import- und Formatierungsschritte in einer einzigen Makro-Prozedur zusammenfassen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere CSV-Dateien gleichzeitig importieren?
Du kannst den Code so anpassen, dass er eine Schleife über alle ausgewählten Dateien ausführt, um sie nacheinander zu importieren.

2. Was mache ich, wenn die CSV-Datei nicht im richtigen Format vorliegt?
Überprüfe die Daten in der CSV-Datei und stelle sicher, dass sie korrekt formatiert sind (z. B. durch Semikolons getrennt, wenn du diese Trennzeichen verwendest).

3. Ist VBA für alle Excel-Versionen verfügbar?
Ja, VBA ist in allen gängigen Excel-Versionen verfügbar, allerdings kann die Benutzeroberfläche leicht variieren.

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