Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1240to1244
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

Csv Formatierung

Csv Formatierung
Marcel.S
Hallo,
ich habe ein Problem hier mit meinem Excel und wollte wissen ob jemand vielleicht eine Lösung hat oder ob das so nicht geht. Zur Sache :
Ich habe hier ein Programm dass mir die Daten schon in so einem Format hier ausgibt:
1 0621/23345 24.11.2011 09:24 DE
2 0644/44789 25.11.2011 19:01 DE
3 06321/76523 28.11.2011 23:24 DE
Allerdings müssen diese letzten Endes in einer csv Datei gespeichert werden und die Trennzeichen etc. wie folgt enthalten... Ist es irgendwie möglich dass alles auf einen Streich zu machen oder müsste ich dass echt alles manuell bei jeder einzelnen Zeile machen. Denn das wäre ne rieseige Tabelle.
|"0621/23345"|""|"24.11.2011"|"09:24"|""|
|"0644/44789"|""|"25.11.2011"|"19:01"|""|
|"0621/76523"|""|"28.11.2011"|"23:04"|""|
Ich hoffe ihr versteht mein Problem und könnt mir helfen.
Mit freundlichen Grüßen
Marcel

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Rückfragen
12.12.2011 10:38:31
Erich
Hi Marcel,
bei einer solchen Fragestellung sind die Beispiele für das Verständnis wichtig.
Ein wenig Sorgfalt wäre da schon angebracht...
Fragen:
1.
Sicher, dass das Trennzeichen | auch schon an der 1. Stelle stehen soll?
2.
Sollen die Zeichen DE (am Ende der Quellsätze) weggelassen werden?
3.
Soll im 3. Satz aus 06321 dann 0621 werden? Wie sähe Satz 3 in der Ausgabe richtig aus?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
AW: Rückfragen
12.12.2011 10:58:02
Marcel.S
Hallo Erich,
entschuldige bitte vielmals dass das Beispiel so ungenau rüberkommt, aber ich habe das Problem gerade auf der Arbeit und da ist es ziemlich stressig. Zur Sache:
1. Nein, ich habe nur vergessen diese auch zu löschen, da ich einige Daten entfernen musste.
2. Auch hier liegt es nur daran dass ich diese in dem Beispiel nur weggelassen habe.
3. Nein, hier soll sich nichts ändern.. der Fehler kommt einfach davon dass ich die Ziffern schnell manuell als Beispiel eingeben habe.
Im Prinzip geht es mir darum dass wir die Daten in einer Excel Tabelle so wie oben geliefert bekommen. Sprich Datum ist in einer seperaten Spalte, Uhrzeit ist in einer seperaten etc. ... Was allerdings nun von uns verlangt wird ist dass wir das alles so in CSV formatieren dass die Trennzeichen und alles so vorhanden sind wie im Beispiel. Ich hoffe du verstehst was ich meine?
Mit freundlichen Grüßen
Marcel
Anzeige
ohne VBA
12.12.2011 13:10:51
Erich
Hi Marcel,
vielleicht ist es für dich leichter, das ohne VBA zu erledigen.
Dazu fügst du ein neues Tabellenblatt ein, in dem du per Formeln die gewünschte Ausgabe in Spalte A ab A1 erzeugst:
 ABCD
10621/2334524.11.201109:24DE
20644/4478925.11.201119:01DE
306321/7652328.11.201123:24DE
4    
5in einem neuen Tabellenblatt:   
6"0621/23345"|"24.00.2011"|"09:24"|"DE"   
7"0644/44789"|"25.00.2011"|"19:01"|"DE"   
8"06321/76523"|"28.00.2011"|"23:24"|"DE"   

Formeln der Tabelle
ZelleFormel
A6=""""&Quelle!A1&"""|"""&TEXT(Quelle!B1;"tt.mm.jjjj")&"""|"""&TEXT(Quelle!C1;"hh:mm")&"""|"""&Quelle!D1&""""

Dieses Blatt lässt sich dann leicht als CSV- oder Textdatei speichern.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
und steht das ...
12.12.2011 10:49:37
Rudi
Hallo,
jeweils in einer Zelle oder in 4?
Gruß
Rudi
AW: und steht das ...
12.12.2011 11:05:48
Marcel.S
Hallo Rudi,
letzten Endes soll es wohl so sein dass diese Reihe |"0621/23345"|""|"24.11.2011"|"09:24"|""| hier zB in einer Zelle steht, und wenn unsre Kunden dann | als Trennungszeichen eingeben wollen sieht ja alles wieder relativ normal aus. Aber dass ist uns leider vorgegeben .
Mit freundlichen Grüßen
Marcel
AW: Csv Formatierung
12.12.2011 11:33:41
Rudi
Hallo,
in ein Modul und aus der zu exportierenden Tab laufen lassen.
Public Sub prcCreateCSV()
Dim intFileNumber As Integer
Dim lngRow As Long
Dim vntArray As Variant
Dim intItem As Integer
Dim strText As String
Dim i As Integer
Const strSep As String = "|"
With Cells(1, 1).CurrentRegion
For lngRow = 1 To .Rows.Count
vntArray = .Cells(lngRow, 1).Resize(, .Columns.Count)
vntArray = WorksheetFunction.Transpose(WorksheetFunction.Transpose(vntArray))
For intItem = LBound(vntArray) To UBound(vntArray)
vntArray(intItem) = """" & vntArray(intItem) & """"
Next
If strText = "" Then
strText = Join(vntArray, strSep)
Else
strText = strText & vbCrLf & Join(vntArray, strSep)
End If
Next
End With
intFileNumber = FreeFile
With ActiveWorkbook
Open _
.Path & "\" _
& Left$(.Name, Len(.Name) - 4) _
& "_" & ActiveSheet.Name _
& ".csv" _
For Output As #intFileNumber
End With
Print #intFileNumber, strText
Close #intFileNumber
End Sub

Gruß
Rudi
Anzeige
AW: Csv Formatierung
12.12.2011 12:14:02
Marcel.S
Hallo Rudi, danke für deine Hilfe.
Kannst du mir bitte noch sagen wie genau ich das mache. Ich kenne mich leider nicht so optimal wie ihr hier mit Excel aus.
How to
12.12.2011 12:54:37
Rudi
Hallo,
Alt+F11 drücken, im linken Fenster Rechtsklick auf deine Mappe, Einfügen Modul.
Code in das rechte Fenster kopieren und aus deiner zu exportierenden Tabelle heraus starten (Alt+F8).
Gruß
Rudi
AW: How to
12.12.2011 13:29:40
Marcel.S
Jetzt hat es geklappt! Vielen vielen vielen Dank!!!!!!!
Du hast mir eine Menge Arbeit erspart *zwinker*..
Liebe Grüße
Marcel
AW: Csv Formatierung
12.12.2011 17:24:28
Erich
Hi Rudi,
beim Test deiner Prozedur bin ich über eine weniger 'schöne' Ausgabe der Uhrzeit gestolpert.
Aus der Tabelle
 ABCD
1X1X2X3X4
20621/2334524.11.201109:24DE
30644/4478925.11.201119:01DE
406321/7652328.11.201123:24DE

wird mit der Prozedur der Text

"X1"|"X2"|"X3"|"X4"
"0621/23345"|"24.11.2011"|"0,391666666666667"|"DE"
"0644/44789"|"25.11.2011"|"0,792361111111111"|"DE"
"06321/76523"|"28.11.2011"|"0,975"|"DE"
Ist das bei euch anders?
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: Csv Formatierung
13.12.2011 11:50:21
Marcel.S
Hallo Erich, du hast Recht! Leider ist uns dass auch erst spät am Abend aufgefallen.
Gibt es da eine Möglichkeit dies noch zu korrigieren? Es wäre wichtig. Das Zeitformat sollte später hh:mm:ss. (ist im Beispiel zwar jetzt nicht so gewesen, aber dass ja nur ein Beispiel ;) )
Danke für eure Hilfe
Marcel
CSV mit Date- und Time-Formatierung
13.12.2011 12:13:02
Erich
Hi Marcel,
hier werden beispielhaft die Spalten 2 und 3 bzw. 11 in Text umgewandelt,
der dann ins CSV geschrieben wird:

Option Explicit
Sub prcCreateCSV2()
Dim intFileNumber As Integer
Dim lngRow As Long
Dim vntArr As Variant
Dim intItem As Integer
Dim strText As String
Const strSep As String = "|"
With Cells(1, 1).CurrentRegion
For lngRow = 1 To .Rows.Count
vntArr = .Cells(lngRow, 1).Resize(, .Columns.Count)
vntArr = WorksheetFunction.Transpose(WorksheetFunction.Transpose(vntArr))
For intItem = 1 To UBound(vntArr)
Select Case intItem
Case 2
vntArr(intItem) = Format(vntArr(intItem), "dd.mm.yyyy")
Case 3, 11:
vntArr(intItem) = Format(vntArr(intItem), "hh:mm:ss")
End Select
vntArr(intItem) = """" & vntArr(intItem) & """"
Next
If strText = "" Then
strText = Join(vntArr, strSep)
Else
strText = strText & vbCrLf & Join(vntArr, strSep)
End If
Next
End With
intFileNumber = FreeFile
With ActiveWorkbook
Open .Path & "\" _
& Left$(.Name, InStrRev(.Name, ".") - 1) _
& "_" & ActiveSheet.Name & ".csv" _
For Output As #intFileNumber
End With
Print #intFileNumber, strText
Close #intFileNumber
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: Csv Formatierung
13.12.2011 12:22:01
Rudi
Hallo,
Public Sub prcCreateCSV()
Dim intFileNumber As Integer
Dim lngRow As Long
Dim vntArray, vntTmp()
Dim intItem As Integer
Dim strText As String
Dim i As Integer
Const strSep As String = "|"
With Cells(1, 1).CurrentRegion
ReDim vntTmp(.Columns.Count - 1)
For lngRow = 1 To .Rows.Count
For i = 1 To .Columns.Count
vntTmp(i - 1) = .Cells(lngRow, i).Text
Next
vntArray = WorksheetFunction.Transpose(WorksheetFunction.Transpose(vntTmp))
For intItem = LBound(vntArray) To UBound(vntArray)
vntArray(intItem) = """" & vntArray(intItem) & """"
Next
If strText = "" Then
strText = Join(vntArray, strSep)
Else
strText = strText & vbCrLf & Join(vntArray, strSep)
End If
Next
End With
intFileNumber = FreeFile
With ActiveWorkbook
Open _
.Path & "\" _
& Left$(.Name, Len(.Name) - 4) _
& "_" & ActiveSheet.Name _
& ".csv" _
For Output As #intFileNumber
End With
Print #intFileNumber, strText
Close #intFileNumber
End Sub

Gruß
Rudi
Anzeige
AW: Csv Formatierung
13.12.2011 12:38:06
Marcel.S
Danke vielmals für die Hilfe Erich und Rudi!!
Liebe Grüße
Marcel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige