Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1396to1400
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
Inhaltsverzeichnis

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!!

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

183 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige