Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
672to676
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
672to676
672to676
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datei automatisch in csv abspeichern

Datei automatisch in csv abspeichern
25.09.2005 13:49:09
Roli
Ich habe eine große Bitte an jene, die mir weiterhelfen können.
MIt folgendem Code speichere ich die aktuelle Datei in eine Excel-Datei ab.

Sub Speichern_unter()
On Error Resume Next
Dim mldg As String, titel As String, stil As Integer
Dim sFile As Variant, msgAntwort As Variant
Dim Daten As Range, Zeile As Object, Zelle As Object
Dim strTemp As String
Dim Pfad$, name$
'On Error GoTo errorhandler
Pfad = "C:\excel\"
name = Sheets(Eingabe).Range("a1").Value
MsgBox "Sie können einen beliebigen Dateinamen eingeben. Standardgemäß werden die Auftragsformulare in " & Pfad & " abgespeichert!"
With ActiveSheet
sFile = Application.GetSaveAsFilename(InitialFilename:=Left(Pfad & name, Len(Pfad & name)) & ".xls", _
FileFilter:="Microsoft Excel-Arbeitsmappe (*.xls), *.xls")
If sFile <> False Then ActiveWorkbook.SaveAs Filename:=sFile
End With
mldg = "Wollen Sie auch das gespeicherte Auftragsformular auf das CSV-Format umkonvertieren?"
stil = vbYesNo + vbInformation + vbDefaultButton2
titel = "CSV?"
'---Nachfrage, ob umkonvertiert werden soll?----
If MsgBox(mldg, stil, titel) = vbYes Then
Speichern_csv
End If
End Sub

Es läuft soweit ganz gut, nur möchte ich, dass automatisch, nachdem in xls-datei gespeichert wurde, auch eine csv-kopie angelegt wird. Bisher wurde mit diesem Code umkonvertiert und sollte auch so bleiben. Diesen Code habe ich aus diesem Forum irgendwo gefunden.
Dim Daten As Range, Zeile As Object, Zelle As Object
Dim strTemp As String
Set Daten = .UsedRange
Close
Open sFile For Output As #1

For Each Zeile In Daten.Rows

For Each Zelle In Zeile.Cells
If Zelle.Column = 1 Then
strTemp = Zelle
Else
If Zelle.Column = 3 And IsNumeric(Zelle) Then
strTemp = strTemp & ";" & Format(Zelle, "00")
Else
strTemp = strTemp & ";" & Zelle
End If
End If
Next Zelle

Print #1, strTemp
strTemp = ""

Next Zeile
Close #1
Weiß jemand, wie nach dem Speichern im Hintergrund eine csv-kopie in einem vorbestimmten Ordner anlegt? Die Dateiname wird aus der Zelle A1 herangezogen.
Für jede weitere Hilfe bin ich dankbar.
Roli

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei automatisch in csv abspeichern
25.09.2005 14:00:04
Ramses
Hallo
Diese Zeile hast du ja schon
ActiveWorkbook.SaveAs Filename:=sFile
Wenn du das Speichern als CSV mit dem Makrorekorder aufgezeichnet hättest, dann würdest du in etwa das hier erhalten
ActiveWorkbook.SaveAs Filename:= _
"C:\Mappe1.csv", FileFormat:=xlCSV, _
CreateBackup:=False
Mit ein wenig Kreativität könnte man nun folgendes daraus basteln
ActiveWorkbook.SaveAs Filename:=sFile, FileFormat:=xlCSV, CreateBackup:=False
Gruss Rainer
AW: Datei automatisch in csv abspeichern
25.09.2005 15:23:00
Roli
hallo Ramses!
Danke für die rasche Antwort. Es ist leider nicht das Ziel, das verfolge, oder ich hab das nicht ganz verstanden.
In eine csv konvertiere ich mit folgendem Code. ICh weiß nicht, wie ich den folgenden Code mit dem vorherigen Code (speichern_unter) zusammensetze. Wenn ich die beiden zusammensetze, dann müsste ich zweimal auf speichern klicken und das will ich nur einmal machen können, denn die Dateinamen sind ja bei beiden gleich.

Sub Speichern_csv()
On Error Resume Next
Dim mldg As String, titel As String, stil As Integer
Dim sFile As Variant, msgAntwort As Variant
Dim Daten As Range, Zeile As Object, Zelle As Object
Dim strTemp As String
Dim Pfad$, name$
'On Error GoTo errorhandler
Pfad = "C:\csv\"
name = Sheets(Eingabe).Range("a1").Value
MsgBox "Sie können einen beliebigen Dateinamen eingeben. Standardgemäß werden die Auftragsformulare in " & Pfad & " abgespeichert!"
With ActiveSheet
sFile = Application.GetSaveAsFilename(InitialFilename:=Left(Pfad & name, Len(Pfad & name)) & ".csv", _
FileFilter:="CSV-Format (*.csv), *.csv")
If sFile = False Then Exit Sub
If Dir(sFile) <> "" Then
msgAntwort = MsgBox("Die Datei '" & sFile & "' besteht bereits. Möchten Sie die bestehende Datei ersetzen?", _
vbQuestion + vbYesNo, "Warnung")
If msgAntwort = vbNo Then Exit Sub
End If
Set Daten = .UsedRange
Close
Open sFile For Output As #1
For Each Zeile In Daten.Rows
For Each Zelle In Zeile.Cells
If Zelle.Column = 1 Then
strTemp = Zelle
Else
If Zelle.Column = 3 And IsNumeric(Zelle) Then
strTemp = strTemp & ";" & Format(Zelle, "00")
Else
strTemp = strTemp & ";" & Zelle
End If
End If
Next Zelle
Print #1, strTemp
strTemp = ""
Next Zeile
Close #1
End With
End Sub

Anzeige
AW: Datei automatisch in csv abspeichern
25.09.2005 18:00:24
Ramses
Hallo
"...Es ist leider nicht das Ziel..."
Weiss ich nicht,... ich denke schon
"... oder ich hab das nicht ganz verstanden..."
Du hast es gar nicht ausprobiert.

Sub Speichern_unter()
On Error Resume Next
Dim mldg As String, titel As String, stil As Integer
Dim sFile As Variant, msgAntwort As Variant
Dim Daten As Range, Zeile As Object, Zelle As Object
Dim strTemp As String
Dim Pfad$, name$
'On Error GoTo errorhandler
Pfad = "C:\excel\"
name = Sheets(Eingabe).Range("a1").Value
MsgBox "Sie können einen beliebigen Dateinamen eingeben. Standardgemäß werden die Auftragsformulare in " & Pfad & " abgespeichert!"
With ActiveSheet
sFile = Application.GetSaveAsFilename(InitialFilename:=Left(Pfad & name, Len(Pfad & name)) & ".xls", _
FileFilter:="Microsoft Excel-Arbeitsmappe (*.xls), *.xls")
If sFile <> False Then ActiveWorkbook.SaveAs Filename:=sFile
End With
mldg = "Wollen Sie auch das gespeicherte Auftragsformular auf das CSV-Format umkonvertieren?"
stil = vbYesNo + vbInformation + vbDefaultButton2
titel = "CSV?"
'---Nachfrage, ob umkonvertiert werden soll?----
If MsgBox(mldg, stil, titel) = vbYes Then
ActiveWorkbook.SaveAs Filename:="C:\csv\" & sFile & ".csv", FileFormat:=xlCSV, CreateBackup:=False
End If
End Sub

Gruss Rainer
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige