captnhowdy
Goto Top

Excel VBA entfernt führende Nullen beim Export zu CSV

Hallo Ihr da draußen,

ich habe folgendes Problem, mein VPA entfernt führende Nullen der einzelnen Zellen. Ich habe diese in Excel per Sonderformatierung aufgefüllt.
Wie kann ich das unterbinden? Hat jemand eine Lösung?

Sub Stammdaten_Aktuell_Export()
  Dim varSpalten
  Dim intSpalte As Integer, lngZeile As Long
  Dim objQuellblatt As Worksheet
  Dim objZielblatt As Worksheet
  Dim strPfad As String
  Dim varTmp, strOut As String
  Open "c:\test\Stammdaten_Aktuell.csv" For Output As #1  'Datenquelle festlegen  
  Set objQuellblatt = ThisWorkbook.Sheets("Stammdaten_Aktuell") 'Dateiname festlegen  

  varSpalten = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
  varTmp = objQuellblatt.UsedRange
  For lngZeile = 1 To UBound(varTmp)
    strOut = ""  
    If Len(varTmp(lngZeile, varSpalten(0))) > 0 Then
      For intSpalte = 0 To UBound(varSpalten)
        strOut = strOut & ";" & varTmp(lngZeile, varSpalten(intSpalte))  
      Next intSpalte
      strOut = Mid(strOut, 2)
      Print #1, strOut
    End If
  Next lngZeile
  Close #1
End Sub
Kommentar vom Moderator colinardo am Apr 13, 2021 um 09:14:53 Uhr
Titel korrigiert

Content-Key: 665159

Url: https://administrator.de/contentid/665159

Printed on: April 19, 2024 at 13:04 o'clock

Member: Ghent74
Solution Ghent74 Mar 26, 2021 updated at 08:48:33 (UTC)
Goto Top
Naja,
du hast die Zelle in Excel so formatiert, dass führende Nullen optisch erzeugt werden, die "Daten" selbst sind weiterhin "normale" Zahlen ohne führende Null.
Und genau das liest du aus und speicherst es ab.
Du müsstest also im Script diese führenden Nullen erst wieder hinzufügen.

EDIT:
z.B. so:
Text = format(Zahl,"00000#")

mit Zahl als Excelfeld
und Text als Variable, die du ins CSV schreiben willst.

Mit der Formatierung "00000#" erzeugst du dann z.B. 000123.