|
CSV-Datei mit VBA erstellen inkl 2 Nachkommastellen???
|
| Autor |
Nachricht |
MichaelB.
Im Profil kannst Du frei den Rang ändern
Verfasst am: 08. März 2010, 10:05 Rufname:
|
|
| Version: Office 2007 |
|
Hallo zusammen,
ich möchte, die von mir kalkulierte Excel-Tabelle als CSV speichern. Dies funktioniert mit dem unten angefügten Anweisung ohne Probleme.
Das Problem was ich aber habe ist, dass die CSV nicht immer 2 Nachkommastellen hat.
Beispiel
Excel = 48,25 oder 42,20
CSV = 48,25 oder 42,2
Wie muss ich die VBA Anweisung umschreiben, dass es immer 2 Nachkommastellen sind und nicht wie oben im Beispiel da gestellt?
Die Zahlen befinden sich in der Spalte E:
Die Datei wird später automatisch in eine SQL-DB importiert und der Import funktioniert nur wenn 2 Nachkommastellen existieren.
Ich hoffe ich könnt mir weiterhelfen.
Besen Dank im Voraus
Public Sub ExportCSV()
Dim strLine As String
Dim strFile As String
Dim i As Long
Dim k As Long
On Error GoTo ErrorHandler
Err.Clear
' Ausgabedatei
strFile = ActiveWorkbook.Path & "\" & "GB_Quoten.csv"
' Datei löschen, falls diese existiert
If Dir(strFile) <> "" Then Kill strFile
' Datei öffnen
Open strFile For Output As #1
' Aktueller Bereich um Zelle A1
With Worksheets("Upload").Range("A1").CurrentRegion
For i = 1 To .Rows.Count
' Alle Zeilen durchlaufen
strLine = ""
For k = 1 To .Columns.Count
' Alle Spalten durchlaufen
' Ausgabezeile aus Zellinhalten
strLine = strLine & .Cells(i, k) & ";"
Next k
' letztes Semikolon entfernen
strLine = Left(strLine, Len(strLine) - 1)
' Zeile ausgeben
Print #1, strLine
Next i
End With
Close
MsgBox "CSV-Datei:" & vbCrLf & strFile & vbCrLf & _
"erfolgreich angelegt"
Exit Sub
ErrorHandler:
MsgBox "Fehlermeldung Original:" & vbCrLf & Err.Description _
& vbCrLf & vbCrLf & _
"Eventuell Fehler beim Anlegen der Datei" & vbCrLf & _
strFile & vbCrLf & _
"Laufwerk möglicherweise Schreibgeschützt (CD)"
End Sub
|
|
EtoPHG
Ich sehe schwarze Zeiten kommen...

Verfasst am: 08. März 2010, 10:33 Rufname: Hansueli
|
| |
| Version: Office 2007 |
|
Hi Michael,
Was soll den das bringen? Der Witz einer CSV-Struktur besteht doch gerade darin, dass die Feldlänge variabel lang sein kann. Die Trennzeichen (z.B. Komma) definieren doch wann ein Feld beginnt und wann aufhört. Was soll es da bringen, dass nicht-signifikante Kommastellen zusätzlich abgespeichert werden? Mit dem Import in die DB hat das mit Sicherheit nichts zu tun, ausser du hast einen selbstgebastelten Filter, der auf Fixen-Recordlängen beruht, was dann alle Vorteil von CSV wieder zunichte macht.
Gruess Hansueli
_________________ Forenhelfer danken für eine Rückmeldung!
Der Kluge lernt, der Dummkopf erteilt gern Belehrungen. - Anton Tschechow
|
|
MichaelB.
Im Profil kannst Du frei den Rang ändern
Verfasst am: 08. März 2010, 10:55 Rufname:
|
|
| Version: Office 2007 |
|
Hallo Hansueli,
erstmals vielen Dank für die schnelle Antwort.
Zum Thema Upload kann ich nichts sagen -- unsere IT hat die vorgabe geben, dass nur Datensätze importiert und in einer Tabelle abgelegt werden, welche im Format 00,00 aufgebaut sind.
Beispiel für meine bisherige CSV-Datei über den Code
2010-02;xxxx;xxxxxxxx;0;50,31
2010-02;xxxx;yyyyyyyy;0;50,5
2010-02;xxxx;zzzzzzzz;0;49
Folglich würde jetzt nur der erste Datensatz importiert werden...
|
|
Rieu
leidlicher Excel-VBA-Amateur
Verfasst am: 08. März 2010, 11:02 Rufname:
|
|
| Version: Office 2007 |
|
Wäre das dann nicht:
| Code: | | Format(zahl, "##,##0.00") |
?
|
|
MichaelB.
Im Profil kannst Du frei den Rang ändern
Verfasst am: 08. März 2010, 11:06 Rufname:
|
|
| Version: Office 2007 |
|
Hallo,
wenn du mir jetzt noch sagen könntest, wo ich dies einfügen müsste, könnte ich es sofort testen.
Habe erst angefangen mich für VBA zu interessieren, zu lernen.
Der Code ist nicht von mir.
Zuletzt bearbeitet von MichaelB. am 08. März 2010, 11:07, insgesamt einmal bearbeitet |
|
EtoPHG
Ich sehe schwarze Zeiten kommen...

Verfasst am: 08. März 2010, 11:07 Rufname: Hansueli
|
|
| Version: Office 2007 |
|
Hi Michael,
Hast du denn dein IT mal gefragt, was passiert wenn da, statt
50,31
492173,7 steht ?
Ein Ansatz wäre, dass du Zellen mit numerischem Inhalt so überträgst:
| Code: | | Format(Cells(i, k), "0.00") & ";" |
also z.B. für Spalte 5:
| Code: | | strLine = strLine & IIF(k = 5, Format(Cells(i, k), "0.00"), .Cells(i, k)) & ";" |
Gruess Hansueli
_________________ Forenhelfer danken für eine Rückmeldung!
Der Kluge lernt, der Dummkopf erteilt gern Belehrungen. - Anton Tschechow
Zuletzt bearbeitet von EtoPHG am 08. März 2010, 11:10, insgesamt einmal bearbeitet |
|
Rieu
leidlicher Excel-VBA-Amateur
Verfasst am: 08. März 2010, 11:10 Rufname:
|
|
| Version: Office 2007 |
|
Ich bin zwar nicht Hansueli, aber änder mal Deine Code so ab (ungetestet):
| Code: |
If k = 5 Then
strLine = strLine & Format(.Cells(i, k) , "##,##0.00")& ";"
Else
strLine = strLine & .Cells(i, k) & ";"
End If
|
Dafür natürlich die Zeile | Code: | | strLine = strLine & .Cells(i, k) & ";" | überschreiben...
|
|
MichaelB.
Im Profil kannst Du frei den Rang ändern
Verfasst am: 08. März 2010, 11:24 Rufname:
|
| |
| Version: Office 2007 |
|
Hallo Rieu und Hansueli,
vielen Dank für eure Hilfe.
Ich habe eure beiden Codes getestet und ich kann beide verwenden
Nochmals vielen Dank für eure Hilfe.
Ihr seit super!!!
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum herunterladen
|
|
|
|
| Verwandte Themen |
| Forum / Themen |
Antworten |
Autor |
Aufrufe |
Letzter Beitrag |
 |
Excel Formeln: Komplizierte Abfrage erstellen |
12 |
Gast |
100 |
26. Mai 2010, 15:41 muhmaff  |
 |
Excel Auswertungen: Würde gerne Gradmesser auf Halbkreis erstellen... |
3 |
Gast |
212 |
17. Apr 2010, 21:06 Gast  |
 |
Excel VBA (Makros): *.txt datei erstellen // dateiname = zeitstempel |
4 |
truespin |
525 |
05. März 2010, 00:33 aimoehl  |
 |
Excel VBA (Makros): Rechnungsnummer erstellen |
6 |
Daethman |
550 |
05. Jan 2010, 13:58 Daethman  |
 |
Excel Formeln: Angebot mit variablen Nummern in Excel erstellen??? Formel? |
4 |
Bennla |
105 |
30. Okt 2009, 11:58 Bennla  |
 |
Excel Hilfe: *T*Excel-Tabelle in csv-Datei umwandeln |
3 |
ajoram |
428 |
29. Okt 2009, 13:43 < Peter >  |
 |
Excel VBA (Makros): begrenzung von Nachkommastellen - Problem |
2 |
Gast |
307 |
26. Sep 2009, 12:51 Gast  |
 |
Excel VBA (Makros): Ein Makro per Makro verändern/erstellen |
2 |
ExcelTüftler |
101 |
10. Dez 2008, 00:54 ExcelTüftler  |
 |
Excel Formate: Hyperlink automatisch erstellen |
3 |
Schiemann |
1730 |
09. Jul 2008, 13:54 Schiemann  |
 |
Excel VBA (Makros): DropDown Menü erstellen und Quellbereiche festlegen |
0 |
Samoh T |
2234 |
23. Okt 2007, 14:12 Samoh T  |
 |
Excel Auswertungen: Reiter Index im Excel erstellen |
5 |
Frenchie76 |
1943 |
21. Apr 2007, 21:41 unrädschistert  |
 |
Excel Auswertungen: Diagramm aus Excel mit Macro erstellen |
6 |
mindbreaker |
12525 |
05. Feb 2007, 10:47 Gast  |
| |
|