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

Forumthread: csv-Dateien automatisch importieren

csv-Dateien automatisch importieren
03.03.2007 19:04:00
Peter
Ich habe folgendes Problem:
Möchte csv-Dateien (Kontoumsätze von Bank downgeloadet) in ein Tabellenblatt an vorher angewählter Stelle (Zelle im Blatt, auf der der Cusor gerade steht) mit VBA-Makro automatisch importieren. Dazu ist es aber notwendig, dass das Dialogfenster "Datei auswählen" geöffnet wird und nach Wahl der Datei alles weiter automatisch abläuft. Hab untenstehend den aufgezeichnet Code. Wie und an welcher Stelle kann ich nun das Dialogfenster zum Öffnen der Datei im Code einfügen? Es ändert sich also nur der jeweilige Dateiname und der Ort(Zelle in der ich vor Aufruf des Makros stand) wohin importiert werden soll.
Kann mir da irgendwer helfen, wäre sehr dankbar!
Liebe Grüße
Peter
Sub importieren()
' importieren Makro
' Makro am 02.03.2007 von POLA aufgezeichnet
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Dokumente und Einstellungen\POLA\Desktop\0001234567_20070220_20070302.csv" _
, Destination:=Range("A2696"))
.Name = "0001234567_20070220_20070302"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 2
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 9)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: csv-Dateien automatisch importieren
03.03.2007 19:48:00
Heiko
Hallo Peter,
wenn es nur um das auswählen der Datei und dann das automatische einfügen ab der aktiven Zelle geht, dann so. Den Rest habe ich nicht getestet, aber du sagst ja es geht so dann sollte es auch weiter damit gehen.
Sub importieren()
Dim varPfadUndDatei As Variant
varPfadUndDatei = Application.GetOpenFilename("CSV Files (*.csv), *.csv")
If varPfadUndDatei = False Then Exit Sub
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & varPfadUndDatei, Destination:=ActiveCell)
.Name = "0001234567_20070220_20070302"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 2
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 9)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: csv-Dateien automatisch importieren
03.03.2007 19:54:00
Peter
Lieber Heiko!
Ganz herzlichen Dank, dass war eine prompte Hilfe!
Schönen Samstag noch
Peter
;
Anzeige
Anzeige

Infobox / Tutorial

csv-Dateien automatisch importieren in Excel


Schritt-für-Schritt-Anleitung

Um CSV-Dateien automatisch in Excel zu importieren, kannst du ein einfaches VBA-Makro nutzen. Hier ist eine Schritt-für-Schritt-Anleitung, wie du das Makro erstellst und anpasst:

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

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

  3. Kopiere den folgenden Code in das Modul:

    Sub importieren()
        Dim varPfadUndDatei As Variant
        varPfadUndDatei = Application.GetOpenFilename("CSV Files (*.csv), *.csv")
        If varPfadUndDatei = False Then Exit Sub
        With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & varPfadUndDatei, Destination:=ActiveCell)
            .Name = "ImportierteCSV"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 1252
            .TextFileStartRow = 2
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = True
            .TextFileSemicolonDelimiter = True
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1, 9)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
        End With
    End Sub
  4. Speichere das Modul und schließe den VBA-Editor.

  5. Führe das Makro aus, indem du in Excel ALT + F8 drückst, das Makro auswählst und auf "Ausführen" klickst.

Mit diesem Makro wird ein Dialogfenster geöffnet, in dem du die CSV-Datei auswählen kannst. Der Import der Daten erfolgt automatisch ab der aktiven Zelle.


Häufige Fehler und Lösungen

  • Fehler: Das Dialogfenster öffnet sich nicht.

    • Lösung: Stelle sicher, dass die Makros in deiner Excel-Anwendung aktiviert sind. Gehe zu "Datei" > "Optionen" > "Trust Center" > "Einstellungen für das Trust Center" > "Makroeinstellungen" und aktiviere die Makros.
  • Fehler: Die CSV-Datei wird nicht korrekt importiert.

    • Lösung: Überprüfe die Einstellungen für die Textdatei im Code. Möglicherweise musst du die Trennzeichen (z.B. Komma oder Semikolon) anpassen.

Alternative Methoden

Eine andere Möglichkeit, CSV-Dateien in Excel zu importieren, ist die Verwendung des "Daten"-Menüs:

  1. Gehe zu Daten > Daten abrufen > Aus Text/CSV.
  2. Wähle die CSV-Datei aus und klicke auf Importieren.
  3. Folge den Anweisungen im Dialogfeld, um die Daten in dein Excel-Blatt zu importieren.

Diese Methode ist besonders nützlich, wenn du den Import nicht automatisieren möchtest.


Praktische Beispiele

  • Beispiel 1: Du hast mehrere Bankauszüge im CSV-Format, die du monatlich importieren musst. Mit dem oben beschriebenen VBA-Makro kannst du den Import automatisieren und die Daten direkt in dein Arbeitsblatt einfügen.

  • Beispiel 2: Wenn du eine CSV-Datei mit Verkaufsdaten hast, kannst du das Makro so anpassen, dass es die Daten automatisch in die entsprechenden Zellen deines Berichts importiert, ohne dass du jedes Mal manuell nach der Datei suchen musst.


Tipps für Profis

  • Automatisiere regelmäßig wiederkehrende Importe: Wenn du regelmäßig CSV-Dateien importierst, kannst du das Makro so anpassen, dass es automatisch ausgeführt wird, wenn du die Excel-Datei öffnest.

  • Fehlerbehandlung einbauen: Füge im VBA-Code eine Fehlerbehandlung ein, um sicherzustellen, dass das Makro nicht abstürzt, falls eine falsche Datei ausgewählt wird.


FAQ: Häufige Fragen

1. Kann ich das Makro auch für andere Dateiformate verwenden?
Ja, du kannst das Makro anpassen, um andere Dateitypen wie TXT oder XML zu importieren, indem du die entsprechende Dateiendung im Dialogfenster änderst.

2. Wie kann ich den Importvorgang beschleunigen?
Wenn du große CSV-Dateien importierst, kann es hilfreich sein, die Anzahl der Zeilen, die importiert werden, im Code zu begrenzen oder nur die benötigten Spalten zu importieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige