Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1728to1732
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

Speichern einer CSV-Datei mit VBA

Speichern einer CSV-Datei mit VBA
22.12.2019 18:20:59
Niclaus
Hallo
Ich habe eine CSV-Datei ("LA_test2.csv") mit Personaldaten, die ich im Snapform-Viewer für "Daten importieren" brauche.
Das klappt bestens, wenn ich die CSV-Datei nach Aenderungen manuell speichere. Ich erhalte dann die Meldung/Frage: "Einige Features … gehen möglicherweise verloren … - Möchten Sie das Format trotzdem verwenden?" – Ich bestätige mit "Ja".
Ich möchte diese CSV-Datei aber mit VBA speichern und habe es mit folgendem Makro in der PERSONAL.XLSB versucht:
    Windows("LA_test2.csv").Activate
Sheets("LA_alle").Select   ' Wenn diese Zeile deaktiviert ist, ändert sich am Ergebnis  _
nichts.
ActiveWorkbook.Save
Die Datei wird ohne Meldung und Frage gespeichert. Aber jetzt streikt der Snapform-Viewer: Er gibt mir nach dem importieren nur ein leeres Formular zurück.
Wenn ich dann die Datei von Hand speichere (mit Meldung und Frage), verarbeitet der Snapform-Viewer die Daten wieder richtig.
Weiss jemand, wie ich die CSV-Datei mit Makro speichern könnte? Vielen Dank und viele Grüsse Niclaus
Falls es jemand interessiert: Ich brauche den Snapform-Viewer für Lohnausweise. Er wird angeboten von der Eidgenössischen Steuerverwaltung.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern einer CSV-Datei mit VBA
23.12.2019 07:59:35
Oberschlumpf
Hi Niclaus,
ich hab deine Befehle mit einer Bsp-CSV-Datei getestet, und DAS hier kommt dabei raus:
vor dem Speichern mit deinem Code
Userbild
nach dem Speichern mit deinem Code
Userbild
Das Problem könnte sein (so interpretiere ich das Ergebnis), dass Excel nur mit dem Befehl ActiveWorkbook.Save "vergisst", dass die ausgewählte Datei eine CSV-Datei ist.
Funktioniert hat es dann mit diesem Code:

Windows("a - kopie.csv").Activate
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\b.csv", _
FileFormat:=xlCSV, CreateBackup:=False, local:=True

Ok, es wurde "nur" eine Datei unter einem anderen Namen gespeichert. Aber diese Kopie behält das verwendete CSV-Format.
Jetzt müsstest du mit Code nur noch die eigentliche CSV-Datei löschen und den Namen der "neuen" CSV-Datei umbenennen.
Hilfts?
Ciao
Thorsten
Anzeige
AW: Speichern einer CSV-Datei mit VBA
23.12.2019 10:42:56
Herbert
Hallo Niclaus,
probiers mal damit:
ActiveWorkbook.SaveAs fileName:="C:\xxx\xxx.csv", FileFormat:=xlCSVMSDOS, CreateBackup:=False
Servus
AW: Speichern einer CSV-Datei mit VBA
23.12.2019 22:07:18
Niclaus
Grüezi Thorsten, grüezi Herbert
Vielen Dank Euch beiden!
Es klappt bei mir dank der Ergänzung "local:=True", die Thorsten im Code eingesetzt hat, sowohl beim "FileFormat:=xlCSV" wie beim "FileFormat:=xlCSVMSDOS".
Das Makro heisst jetzt bei mir:
Windows("yyy.csv").Activate
' Hier folgen verschiedene Befehle …
' Dann am Ende:
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="D:\yyy.csv", FileFormat:=xlCSV, CreateBackup:=False, local:= _
True
Application.DisplayAlerts = True

Noch einmal vielen Dank! Ich wünsche Euch frohe Festtage und jetzt schon alles Gute im neuen Jahr
Niclaus
Anzeige
AW: Speichern einer CSV-Datei mit VBA
23.12.2019 23:56:46
Niclaus
Hallo
Ich habe eine weitere Frage zum Oeffnen einer CSV-Datei. Wenn ich die Datei "von Hand" öffne, wird sie in Tabellenform dargestellt:
Userbild
Wenn ich sie mit dem Makro
Workbooks.Open Filename:="D:\yyy.csv"
öffne, wird sie "strichpunkt-separated" dargestellt und bleibt auch beim Speichern so.
Userbild
Diese "strichpunkt-Version" akzeptiert der Snapform Viewer nicht. Er verarbeitet nur eine CSV in Tabellenform.
Wisst Ihr, wie das Open-Makro lauten müsste, damit die CSV in Tabellenform geöffnet wird?
Dank und Gruss Niclaus
Anzeige
AW: Speichern einer CSV-Datei mit VBA
24.12.2019 08:50:17
Oberschlumpf
Hi Niclaus,
bei XL 2013 kenn ich die Menüs nicht mehr genau.
Ich nutze XL 2016.
Eine CSV-Datei öffnest ich über
DATEN/EXTERNE DATEN ABRUFEN/AUS TEXTDATEI
Es öffnet sich der Datai-Öffnen-Dialog, und es werden immer nur Dateien im Textformat zur Auswahl angeboten.
Nun wechsel ich in das Verzeichnis mit meiner CSV-Datei (ist auch nur eine Text-Datei) und wähle diese zum Öffnen aus.
Es öffnet sich der Assistent zum Hinzufügen von Daten aus einer CSV-Datei.
Ich wähle die entsprechenden Parameter aus und lasse den Assistenten seine Arbeit tun.
Nach wenigen Sekunden sind alle Daten aus der CSV-Datei vollständig in die neue Excel-Datei in die richtigen Spalten eingetragen.
Damit du nun den VBA-Code dazu erhältst, starte zuerst den Makrorecorder und führe dann die beschriebenen Schritte aus.
Vergiß am Ende nicht, den Recorder wieder zu beenden.
Hilfts?
Ciao
Thorsten
Anzeige
AW: Speichern einer CSV-Datei mit VBA
24.12.2019 08:50:41
Herbert
Hallo Niclaus,
probiers mal damit:
Sub SaveCSV() '* mit dem Trennzeichen ";" wird die csv spaltenweise erzeugt
Dim Bereich As Object, Zeile As Object, Zelle As Object
Dim sSammelString$, sDateiname$, sTrennzeichen$
sDateiname = "D:\xxx.csv"
sTrennzeichen = ";"
Set Bereich = Tab_7_CSV.UsedRange
Open sDateiname For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
sSammelString = sSammelString & """" & CStr(Zelle.Text) & """" & sTrennzeichen
Next
If Right(sSammelString, 1) = sTrennzeichen Then
sSammelString = Left(sSammelString, Len(sSammelString) - 1)
End If
Print #1, sSammelString
sSammelString = ""
Next
Close #1
Set Bereich = Nothing
End Sub
Servus
Anzeige

149 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige