Microsoft Excel

Herbers Excel/VBA-Archiv

Excel Datei in CSV Datei wandeln mit Extras


Betrifft: Excel Datei in CSV Datei wandeln mit Extras von: Sebastian
Geschrieben am: 11.09.2019 08:26:29

Guten Morgen,

mein Name ist Sebastian und ich bin neu hier im Forum. Ich beschäftige mich jetzt erst seit einer Woche mit dem Thema Makro, daher bin ich leider noch ziemlich unwissend in diesem Themenbereich. Über eure Hilfe würde ich mich daher sehr freuen.
Um was geht es:
Ich habe eine Excel Datei, welche ich per Makro als CSV Datei speichern möchte.
Jedoch wäre es schön, wenn im Makro noch weitere Anforderungen erfüllt werden könnten.

Das Makro soll durch einen Button auf einem anderen Tabellenblatt ausgeführt werden. DAs habe ich auch bereits geschafft.

Meine Problem liegen jetzt bei folgendem:

Das Makro soll immer unter dem Namen der jeweiligen Rechnungsnummer gespeichert werden, die in Zelle F2 steht. Das heißt ändere ich die Datei für eine neue Rechnung (und somit eine neue Rechnungsnummer), soll bei Ausführen des Makros auch der Dateiname aktualisiert werden.

Weiter soll der Ablageort beim Speichern aus einer Zelle F3 ausgelesen werden. Ich stelle mir das so vor, dass ich in der Zelle F3 den Dateipfad hineinschreibe und das Makro bei Ausführen, diesen übernimmt. So soll eine Rechnung aus Juni in den Juni Ordner und eine Rechnung aus Juli in den Juli Ordner.

Zu guter Letzt soll das Makro die Excel Datei nach erfolgreichen Speichern automatisch schließen.

Ich wäre euch wirklich dankbar, wenn Ihr mir helfen könntet.
Viele Grüße
Sebastian

Mein aktuelles Makro sieht so aus:

Sub CSV()
              '
              ' CSV Makro
              '
              
              '
                  Sheets("Rechnungsnummer").Activate
                  ChDir "J:\"
                  ActiveWorkbook.SaveAs Filename:= _
                      "J:\" _
                      , FileFormat:=xlCSV, CreateBackup:=False
                  Sheets("Kommandos").Activate
              End Sub

  

Betrifft: AW: Excel Datei in CSV Datei wandeln mit Extras von: 1712390.html
Geschrieben am: 11.09.2019 08:35:35

Hallo Sebastian,

z.B. so:

          Sub CSV()
          
          Dim Pfad As String, Datei As String
          
          Pfad = Sheets("Rechnungsnummer").Range("F3")
          Datei = Sheets("Rechnungsnummer").Range("F2")
          
          ActiveWorkbook.SaveAs Filename:=Pfad & Datei, FileFormat:=xlCSV, CreateBackup:=False
          Sheets("Kommandos").Activate
          
          End Sub
          
          

Gruss Torsten
  

Betrifft: Crosspost von: 1712391.html
Geschrieben am: 11.09.2019 08:46:33

http://www.vba-forum.de/forum/View.aspx?ziel=53512-Excel_Datei_als_CSV_speichern_mit_Zusatzbedingungen

  

Betrifft: AW: Crosspost von: 1712398.html
Geschrieben am: 11.09.2019 09:16:40

Hallo,

Entschuldigung, dass ich in zwei Foren die gleiche Frage gestellt habe. Ich werde das in Zukunft unterlassen und versuchen den anderen Post aus dem anderen Forum zu löschen.

Viele Grüße
Sebastian

  

Betrifft: AW: Crosspost von: 1712400.html
Geschrieben am: 11.09.2019 09:19:09

Du musst das nicht unterlassen, das ist dein Recht. Aber du solltest darauf hinweisen, dass du die Anfrage in verschiedenen Foren gestellt hast, da sich sonst Helfer umsonst bemuehen und die Sache in einem anderen Forum schon erledigt ist. Und bitte gib Rueckmeldung, wenn erledigt.

Danke und Gruss
Torsten

  

Betrifft: AW: Excel Datei in CSV Datei wandeln mit Extras von: 1712416.html
Geschrieben am: 11.09.2019 10:33:50

Hallo Torsten,

vielen, vielen Dank für deine Hilfe! Das sieht schon sehr viele besser aus, als es jemals bei mir aussah.
Jetzt habe ich folgendes Problem:
Wenn ich das Makro ausführe, wird die Datei unter dem richtigen Namen am richtigen Ort abgelegt. Das ist super!

Jedoch speichert er die Datei dann als Typ CSV12345-Datei. Wenn ich dann darauf klicke muss ich auswählen, mit welchem Programm ich die Datei öffnen möchte. Wenn ich dann Excel auswähle, erhalte ich zwar ein Makro, jedoch sind alle Werte in der ersten Spalte.

Wenn ich nach Ausüben des Makros Excel schließe, fragt mich Excel, ob die Änderungen gespeichert werden sollen. Wenn ich "speichern" sage, wird in dem gewünschten Ordner eine zweite CSV Datei erstellt jedoch vom TYP "Excel". Wenn ich diese zweite CSV Datei öffne, erhalte ich auch meine gewünschte CSV Datei in richtigen Format.

Ich hoffe, du konntest meinen Erläuterungen irgendwie nachvollziehen.
Ich möchte praktisch, dass bereits durch das ausüben des Makros, die Datei im richtigen Typ und richtigen Format erstellt wird und nicht erst nachdem ich Excel schließe und sage, dass die Änderungen gespeichert werden sollen.

Lieben Dank für deine Mühen!

  

Betrifft: AW: Excel Datei in CSV Datei wandeln mit Extras von: 1712420.html
Geschrieben am: 11.09.2019 10:43:36

Hallo,

kann ich nicht nachvollziehen. Ich hab das gerade mal ausprobiert. Bei mir wird die Datei sofort als 12345.csv vom Typ Excel gespeichert und kann sie mit Excel oeffnen.

  

Betrifft: AW: Excel Datei in CSV Datei wandeln mit Extras von: 1712425.html
Geschrieben am: 11.09.2019 10:53:04

Hallo das ist komisch, ich versuche es nochmal besser zu zeigen, wie es bei mir aussieht.
Wenn ich das Makro ausführe, sieht es in meinem Ordner so aus:

Name
Rechnungsnummer.CSV12345

Änderungsdatum
11.09.2019 10:21

Typ
CSV1245-Datei



Wenn ich daraufhin die Excel Datei schließe und die Änderungen speichere, kommt folgende Datei zusätzlich in den Ordner. So wie diese möchte ich Sie auch haben.

Name
Rechnungsnummer.CSV12345.csv

Änderungsdatum
11.09.2019 10:28

Typ
Microsoft Excel Comma Separated Value File


Grüße
Sebastian

  

Betrifft: AW: Excel Datei in CSV Datei wandeln mit Extras von: 1712434.html
Geschrieben am: 11.09.2019 11:40:17

Hallo Sebastian,

probier mal folgendes:

ActiveWorkbook.SaveAs Filename:=Pfad & Datei & ".csv" (...)
Also nur das fett markierte in der Zeile dazwischen schieben.

Gruß Pierre
  

Betrifft: AW: Excel Datei in CSV Datei wandeln mit Extras von: 1712442.html
Geschrieben am: 11.09.2019 12:31:22

Hi Pierre,

danke für den tollen Tipp, jetzt speichert er direkt im richtigen Typ ab. Einziges Problem, was ich jetzt noch habe, ist, dass in der CSV Datei alle Werte in der ersten Spalte stehen. Hat dafür vielleicht auch jemand einen Tipp?
Ihr seid echt super!
Danke

  

Betrifft: AW: Excel Datei in CSV Datei wandeln mit Extras von: 1712444.html
Geschrieben am: 11.09.2019 12:41:35

Kurzer Zwischenstand.
- Speicherung unter dem richtigen Namen klappt
- Speicherung im richtigen Ordner klappt
- Schließen nach Ausführen des Makros klappt

Das einzige Problem ist jetzt noch, dass die CSV Datei alle Werte in der ersten Spalte anzeigt.
Mein momentanes Makro sieht so aus:

Sub Dateiname()

Dim Pfad As String, Datei As String

Pfad = Sheets("Rechnungsnummer").Range("AD1")
Datei = Sheets("Rechnungsnummer").Range("F2")

ActiveWorkbook.SaveAs Filename:=Pfad & Datei & ".csv", FileFormat:=xlCSV, CreateBackup:=False

Application.Quit
ActiveWorkbook.Close SaveChanges:=True
End Sub

  

Betrifft: AW: Excel Datei in CSV Datei wandeln mit Extras von: 1712445.html
Geschrieben am: 11.09.2019 12:42:07

HI
wenn du per VBA eine CSV-Datei öffnest oder speicherst, werden unabhängig von der Länderversion immer die amerikanischen Formate angewendet und das heißt im Falle einer CSV-Datei, dass das KOMMA das Spaltentrennzeichen ist, während wir hier in Deutschland das SEMiKOLON dafür verwenden.

wenn du jetzt also die per VBA mit Komma gespeicherte Datei normal öffnest, dann versucht Excel die Datei am Semikolon in Spalten aufzuteilen und da es keines findet, kommt alles in die erste Spalte.

die Abhilfe wäre hier, VBA beim Speichern mitzuteilen, dass die Formate der aktuellen Länderversion verwendet werden sollen durch den zusätzlichen Parameter Local:=True

bzw, der Zusatz & ".csv" sollte eigentlich nicht notwendig sein.
dieser sollte automatisch hinzugefügt werden, wenn du FileFormat:=xlcsv verwendest.
die Variable Datei sollte ebenfalls nur den Dateinamen ohne die Dateierweiterung enthalten:

ActiveWorkbook.SaveAs Filename:=Pfad & Datei, FileFormat:=xlCSV, Local:=True
Gruß Daniel
  

Betrifft: AW: Excel Datei in CSV Datei wandeln mit Extras von: 1712448.html
Geschrieben am: 11.09.2019 12:59:02

Hallo Daniel,

danke für deinen Ratschlag, das klingt sehr schlüssig, leider klappt es noch nicht, bzw. es werden immer noch alle Werte in der ersten Spalte angezeigt.

Mein Makro habe ich so an der Stelle angepasst:

ActiveWorkbook.SaveAs Filename:=Pfad & Datei & ".csv", FileFormat:=xlCSV, Local:=True, CreateBackup:=False

Viele Grüße
Sebastian

  

Betrifft: Bitteschön / @Daniel ... von: 1712456.html
Geschrieben am: 11.09.2019 13:31:18

Hallo Sebastian,

schön, dass die Kleinigkeit geholfen hat.
Bei deinem weiteren Problem kann ich dir leider nicht mehr helfen.

@Daniel: Grundsätzlich ist es richtig, mit der Endung.
Ich weiß auch nicht, worin das Problem beim TE liegt. Aber ich denke, das ".csv" noch zusätzlich in den Code einzufügen ist wohl das kleinste Übel, vor allem wenn es danach doch genau so läuft, wie gewünscht.
Ob das jetzt "eigentlich" sinnig ist oder eben überflüssig, wird an der Stelle uninteressant, an der der Code funktioniert.

Gruß Pierre

  

Betrifft: AW: Bitteschön / @Daniel ... von: 1712460.html
Geschrieben am: 11.09.2019 13:38:40

Hi
vielleicht liegt es ja am Excel 2007, dann muss man das eben zusätzlich mit angeben.
kann ich jetzt nicht beurteilen, da ich 2007 nicht habe und auch nie hatte.
Gruß Daniel

Beiträge aus dem Excel-Forum zum Thema "Excel Datei in CSV Datei wandeln mit Extras"