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

CSV erstellen in mehreren Verzeichnissen

CSV erstellen in mehreren Verzeichnissen
24.09.2007 09:42:11
AndreasK
Hallo an alle,
ich habe ein kleines Problem und hoffe auf eure Hilfe.
Ich habe schonmal rumgesucht und auch einiges gefunden. daraus habe ich mir folgendes Makro erstellt bzw. leicht abgewandelt. Die Datei wird als CSV erstellt so abgespeichert C:\Stammdaten.txt.
Nun möchte ich das die Datei in vier unterschiedlichen Verzeichnissen abgespeichert wird.
Das Mokro viermal hintereinander laufen lassen möchte ich nicht, da gibt es bestimmt einen besseren Weg.
Danke schonmal für eure Hilfe - Andreas

Sub SaveCSV()
Dim Bereich As Object, Zeile As Object, Zelle As Object
Dim strTemp As String
Dim strDateiname As String
Dim strTrennzeichen As String
Dim strMappenpfad As String
strMappenpfad = ActiveWorkbook.FullName
strMappenpfad = Replace(strMappenpfad, ".xls", ".csv")
strDateiname = "c:\stammdaten.txt"
If strDateiname = "" Then Exit Sub
strTrennzeichen = ";"
If strTrennzeichen = "" Then Exit Sub
Set Bereich = Worksheets("scanner_stamm").UsedRange
Open strDateiname For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
If InStr(1, Zelle.Text, strTrennzeichen) > 0 Then
'Zellen, die ein Trennzeichen beinhalten in Anführungsstriche setzen
strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
Else
strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
End If
Next
If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
Print #1, strTemp
strTemp = ""
Next
Close #1
Set Bereich = Nothing
MsgBox "Datei wurde exportiert nach" & vbCrLf & strDateiname
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: CSV erstellen in mehreren Verzeichnissen
24.09.2007 10:01:16
Thorsten
hallo,
vbCrLf wird weder defininert, noch verwendet. woher bekommst du z.B. diesen Wert?
theoretisch musst du den pfad angeben und
workbook.save pfad o.ä.
überall abspeichern können.

AW: CSV erstellen in mehreren Verzeichnissen
24.09.2007 10:20:12
AndreasK
Hallo Thorsten,
ich habe den Code übernommen und etwas angepasst und der Wert vbCrLf war schon eingetragen. Ich habe ihn mit dricn stehen lassen da es zu keiner Fehlermeldung kam. vbCrLf fürhrt meines erachtens nur zu einem Zeilenumbruch in der MsgBox.
Gruss Andreas

AW: CSV erstellen in mehreren Verzeichnissen
24.09.2007 11:14:37
AndreasK
Hallo, hab es alleine hinbekommen. Ist vielleicht nicht ganz so elegant aber es funktioniert.
Grüsse - Andreas

Sub SaveCSV()
Dim Bereich As Object, Zeile As Object, Zelle As Object
Dim strTemp As String
Dim strDateiname As String
Dim strTrennzeichen As String
Dim strMappenpfad As String
strMappenpfad = ActiveWorkbook.FullName
strMappenpfad = Replace(strMappenpfad, ".xls", ".csv")
strDateiname = "c:\test_1\stammdaten.txt"
If strDateiname = "" Then Exit Sub
strDateiname2 = "c:\test_2\stammdaten_2.txt"
If strDateiname2 = "" Then Exit Sub
strDateiname3 = "c:\test_3\stammdaten_3.txt"
If strDateiname3 = "" Then Exit Sub
strDateiname4 = "c:\test_4\stammdaten_4.txt"
If strDateiname4 = "" Then Exit Sub
strTrennzeichen = ";"
If strTrennzeichen = "" Then Exit Sub
Set Bereich = Worksheets("scanner_stamm").UsedRange
Open strDateiname For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
If InStr(1, Zelle.Text, strTrennzeichen) > 0 Then
'Zellen, die ein Trennzeichen beinhalten in Anführungsstriche setzen
strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
Else
strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
End If
Next
If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
Print #1, strTemp
strTemp = ""
Next
Close #1
Open strDateiname2 For Output As #2
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
If InStr(1, Zelle.Text, strTrennzeichen) > 0 Then
'Zellen, die ein Trennzeichen beinhalten in Anführungsstriche setzen
strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
Else
strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
End If
Next
If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
Print #2, strTemp
strTemp = ""
Next
Close #2
Open strDateiname3 For Output As #3
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
If InStr(1, Zelle.Text, strTrennzeichen) > 0 Then
'Zellen, die ein Trennzeichen beinhalten in Anführungsstriche setzen
strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
Else
strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
End If
Next
If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
Print #3, strTemp
strTemp = ""
Next
Close #3
Open strDateiname4 For Output As #4
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
If InStr(1, Zelle.Text, strTrennzeichen) > 0 Then
'Zellen, die ein Trennzeichen beinhalten in Anführungsstriche setzen
strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
Else
strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
End If
Next
If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
Print #4, strTemp
strTemp = ""
Next
Close #4
Set Bereich = Nothing
MsgBox "Datei wurde exportiert nach" & vbCrLf & strDateiname & vbCrLf & strDateiname2 & vbCrLf & _
strDateiname3 & vbCrLf & strDateiname4
End Sub


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige