Supportnet / Forum / Tabellenkalkulation
Excel XP automatisieren bei Import von csv Files.
Frage
Ich möchte gerne meine Arbeitsschritte mit dem Programm Excel XP automatisieren bei Import von csv Files.
Ich habe diverse csv Files im selben Ordner vorliegen. In diesen csv Files befinden sich vom Aufbau (Aber nicht vom Inhalt) her haargenau die gleichen Datensätze (A1 bis Y107).
I. Ich möchte gerne diese csv Files in xls Files konvertieren, ohne dass ich den Textkonvertierungsassistenten jedes Mal für einzelne csv File neu Bedienen muss.
(Die Daten werden von mir immer Gleich typisiert:
im Fenster1:
Dateityp: Getrennt,
Import beginnen in Zeile: 1,
Dateiursprung: 1252: Western European (Windows)
Im Fenster2:
Trennzeichen: Tabstopp, Komma
Texterkennungszeichen: ``
Im Fenster3:
Dateiformat der Spalten: Text)
Die nun in xls konvertierte Datei soll wie folgt heißen.
II. Das Tabellenblatt: soll heißen wie der Inhalt der Zelle A1
III. Der Dateiname: wie der Inhalt der Zelle C7.
Ich freue mich auf ausführliche Antworte n…
Antwort 1 von Axcel
Nur mal so am Rande: Man benötigt zum Import von CSV-Dateien den Textkonvertierungsassistenten nicht. Excel kennt und beherrscht das CSV-Format. Es gibt lediglich in der deutschen Version einen Bug beim Öffnen durch Doppelklick im Explorer. Öffnen über "Menü->Datei->Öffnen" und mittels "Kontextmenü->Senden an" funktioniert problemlos.
Den Bug kann man auch in den Ordneroptionen/Dateitypen entfernen (Antwort 3):
https://supportnet.de/listthread/1016883
Den Bug kann man auch in den Ordneroptionen/Dateitypen entfernen (Antwort 3):
https://supportnet.de/listthread/1016883
Antwort 2 von Axcel
Zitat:
Trennzeichen: Tabstopp, Komma
Texterkennungszeichen: ``
Trennzeichen: Tabstopp, Komma
Texterkennungszeichen: ``
Das Prob könnte sein, dass Dein CSV etwas sehr unkonventionell ist. Meines Wissens gibt es nur jeweils ein einziges Trennzeichen innerhalb von CSV. Bei uns ist es normalerweise das Semikolon, die Angelsachsen benutzen meist das Komma. Das Texterkennungszeichen ist das zweistrichige Anführungszeichen ("). Woher hast Du die Dateien?
Antwort 3 von coros
Hallo cnisdm,
gestatte mir zum Anfang eine kleine Anmerkung. Ein Hallo am Anfang und ein Gruß am Ende würde Deinen Beitrag gleich viel netter aussehen lassen. Wenn Du zum Bäcker gehst sagst Du ja auch beim Reingehen "Guten Tag" und beim Gehen "Auf Wiedersehen". Denn die Leute, an die Du Deine Frage richtest, sitzen zwar am PC, sind aber dennoch Menschen.
Nun zu Deiner Frage: Zeichne Dir die Schritte mit dem Makrorekorder auf und schon hast Du ein Makro, was genau das macht, was Du möchtest.
Wie man ein Makro aufzeichnet habe ich auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 7 beschrieben. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
Bei Fragen melde Dich wieder.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
gestatte mir zum Anfang eine kleine Anmerkung. Ein Hallo am Anfang und ein Gruß am Ende würde Deinen Beitrag gleich viel netter aussehen lassen. Wenn Du zum Bäcker gehst sagst Du ja auch beim Reingehen "Guten Tag" und beim Gehen "Auf Wiedersehen". Denn die Leute, an die Du Deine Frage richtest, sitzen zwar am PC, sind aber dennoch Menschen.
Nun zu Deiner Frage: Zeichne Dir die Schritte mit dem Makrorekorder auf und schon hast Du ein Makro, was genau das macht, was Du möchtest.
Wie man ein Makro aufzeichnet habe ich auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 7 beschrieben. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
Bei Fragen melde Dich wieder.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 4 von cnisdm
Hallo Zusammen, und erstmal danke für die Beiträge.
1 )Ich habe alle Möglichen Varianten ausprobiert die csv-Dateien zu öffnen. Ich habe als Beispiel: in der
Zeile A1: Protocol,"Transp","Transport#" usw…
diese bekomme ich konvertiert wie fogt:
Zeile A1 Protocol A2 Transp A3 Transport# usw.
Da nun alle csv-Dateien die ich aus dem Daten Bank downloade konvertiert werden müssen, möcht ich alle Dateien gleichzeitig öffen( Einen ähnlichen Beitrag hier habe ich auch gelesen
„Mehrere csv Dateien öffnen“.
Ich habe folgende Fehlermeldung bekommen nach dem ich diesen Makroausführte:
Sub Alle_CSV_Dateien_oeffnen()
Dim CSV_Dateiname As String, Pfad As String
Application.ScreenUpdating = False
Pfad = "C:\\Dein Ordner\"
CSV_Dateiname = Dir(Pfad & "*.csv")
Do While Dateiname <> ""
Workbooks.Open Pfad & CSV_Dateiname
Dateiname = Dir
Loop
End Sub
Fehlermeldung:
Microsoft Visual Basic
Fehler beim Kompilieren: Variable nicht definiert
Wobei Z8, S19 markiert wird, also:
Do While Dateiname <> ""
2) Mit dem Makroaufzeichen geht es auch nicht. Da die Datei, an dem ich die o.g. Arbeitsschritte mittels Makrorekorder durchführe, nicht nur vom Aufbau, sondern auch vom Inhalt an die Folgedateien überspielt wird.
Bitte hilft dem blonden Mädel
Dank Ihr lieben
1 )Ich habe alle Möglichen Varianten ausprobiert die csv-Dateien zu öffnen. Ich habe als Beispiel: in der
Zeile A1: Protocol,"Transp","Transport#" usw…
diese bekomme ich konvertiert wie fogt:
Zeile A1 Protocol A2 Transp A3 Transport# usw.
Da nun alle csv-Dateien die ich aus dem Daten Bank downloade konvertiert werden müssen, möcht ich alle Dateien gleichzeitig öffen( Einen ähnlichen Beitrag hier habe ich auch gelesen
„Mehrere csv Dateien öffnen“.
Ich habe folgende Fehlermeldung bekommen nach dem ich diesen Makroausführte:
Sub Alle_CSV_Dateien_oeffnen()
Dim CSV_Dateiname As String, Pfad As String
Application.ScreenUpdating = False
Pfad = "C:\\Dein Ordner\"
CSV_Dateiname = Dir(Pfad & "*.csv")
Do While Dateiname <> ""
Workbooks.Open Pfad & CSV_Dateiname
Dateiname = Dir
Loop
End Sub
Fehlermeldung:
Microsoft Visual Basic
Fehler beim Kompilieren: Variable nicht definiert
Wobei Z8, S19 markiert wird, also:
Do While Dateiname <> ""
2) Mit dem Makroaufzeichen geht es auch nicht. Da die Datei, an dem ich die o.g. Arbeitsschritte mittels Makrorekorder durchführe, nicht nur vom Aufbau, sondern auch vom Inhalt an die Folgedateien überspielt wird.
Bitte hilft dem blonden Mädel
Dank Ihr lieben
Antwort 5 von coros
Hallo cnisdm,
Du musst die Variable "Dateiname" noch am Anfang des Makros deklarieren. Füge nach
eine Leerzeile ein und trage dort
ein. Damit hast Du die Variable deklariert.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Du musst die Variable "Dateiname" noch am Anfang des Makros deklarieren. Füge nach
Sub Alle_CSV_Dateien_oeffnen()eine Leerzeile ein und trage dort
Dim Dateiname As Stringein. Damit hast Du die Variable deklariert.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 6 von cnisdm
Hurra ich habe es fast geschaft...
der u.g. Code ist mit einigen Korrektuten meinerseits nun nahezu perfekt...
Option Explicit
Sub Alle_CSV_Dateien_oeffnen()
Dim CSV_Dateiname As String, Pfad As String
Application.ScreenUpdating = False
Pfad = "C:\\Dein Ordner\"
CSV_Dateiname = Dir(Pfad & "*.csv")
Do While CSV_Dateiname <> ""
Workbooks.Open Pfad & CSV_Dateiname
CSV_Dateiname = Dir
Loop
End Sub
C:\\Dein Ordner\ ist Der Ordner in dem die csv Datei enthalten sind.
Nun zu der Frage:
II. Das Tabellenblatt: soll heißen wie der Inhalt der Zelle A1
III. Der Dateiname: wie der Inhalt der Zelle C7.
Danke und Kuss an Oliver + All die Anderen
der u.g. Code ist mit einigen Korrektuten meinerseits nun nahezu perfekt...
Option Explicit
Sub Alle_CSV_Dateien_oeffnen()
Dim CSV_Dateiname As String, Pfad As String
Application.ScreenUpdating = False
Pfad = "C:\\Dein Ordner\"
CSV_Dateiname = Dir(Pfad & "*.csv")
Do While CSV_Dateiname <> ""
Workbooks.Open Pfad & CSV_Dateiname
CSV_Dateiname = Dir
Loop
End Sub
C:\\Dein Ordner\ ist Der Ordner in dem die csv Datei enthalten sind.
Nun zu der Frage:
II. Das Tabellenblatt: soll heißen wie der Inhalt der Zelle A1
III. Der Dateiname: wie der Inhalt der Zelle C7.
Danke und Kuss an Oliver + All die Anderen
Antwort 7 von coros
Hallo cnisdm,
sorry, so ganz verstehe ich das nicht.
In dem Makro gibt es keine Angabe des Tabellenblattes. Warum soll dann der Tabellenblattname, den es ja nirgneds gibt, aus Zelle A1 stammen?
Der Dateiname kann nicht aus einer Zelle kommen, da dieser aus der Do While Anweisung erzeugt wird. Somit wird bei jedem Durchlauf der Name automatisch erzeugt und in Variable "CSV_Dateiname" geschrieben. Daher auch dieser Wunsch etwas unverständlich.
Du musst wohl etwas Aufklärung betreiben.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
sorry, so ganz verstehe ich das nicht.
In dem Makro gibt es keine Angabe des Tabellenblattes. Warum soll dann der Tabellenblattname, den es ja nirgneds gibt, aus Zelle A1 stammen?
Der Dateiname kann nicht aus einer Zelle kommen, da dieser aus der Do While Anweisung erzeugt wird. Somit wird bei jedem Durchlauf der Name automatisch erzeugt und in Variable "CSV_Dateiname" geschrieben. Daher auch dieser Wunsch etwas unverständlich.
Du musst wohl etwas Aufklärung betreiben.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 8 von cnisdm
hallo oliver,
achte nicht mehr auf den o.g Code, da dieser Code die Antwort auf meine erste Frage ist.
ich möcht nun gerne eine Lösung für die beiden letzen zwei Fragen bekommen, die da lauten
II. Das Tabellenblatt: soll heißen wie der Inhalt der Zelle A1
III. Der Dateiname: wie der Inhalt der Zelle C7.
Anschließend kann ich ja die Makros aus alle drei Fragen zusammenfühgen. Dann hätte ich meine Arbeitsschritte automatisiert oder?
ich bin neu hier(BEGINNER+Blond)
achte nicht mehr auf den o.g Code, da dieser Code die Antwort auf meine erste Frage ist.
ich möcht nun gerne eine Lösung für die beiden letzen zwei Fragen bekommen, die da lauten
II. Das Tabellenblatt: soll heißen wie der Inhalt der Zelle A1
III. Der Dateiname: wie der Inhalt der Zelle C7.
Anschließend kann ich ja die Makros aus alle drei Fragen zusammenfühgen. Dann hätte ich meine Arbeitsschritte automatisiert oder?
ich bin neu hier(BEGINNER+Blond)
Antwort 9 von coros
Hallo cnisdm,
zu II.)
Zu III.)
Ich hoffe, das reicht Dir. Ansonsten benötigt man etwas mehr Hintergrundwissen.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
zu II.)
Dim Blattname As String
Blattname = Range("A1")Zu III.)
Dim Dateiname As String
Dateiname = Range("C7")Ich hoffe, das reicht Dir. Ansonsten benötigt man etwas mehr Hintergrundwissen.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

