Zahlenformat 123,45 in +0012345 ändern, aber wie?

spidermobile

Grünschnabel
Hallo und einen schönen Sonntag,

ich schreibe gerade ein Excel-Makro (ich lese eine Tabelle aus und schreibe eine ASCII Datei) und habe folgendes Problem:

Ich abe in einer Zelle einen Zahlenwert z.B.

123,45
-234,56
0
und möchte im Makro folgendes Ergebnis in die ASCII Datei schreiben:

+0012345 (Schablone 0000000)
-0023456 (Schablone 0000000)
00000 (Schablone 00000).

Gibt es einen Befehl zur Umwandlung der Zahlen in eine bestimmte Schablone?

Vielen lieben Dank für eine kurze Info.

Grüße

Rocco
 
Danke für die schnelle Anrwort. Aber wie wende ich dies nun an?

Ich selektiere mir die Werte mit

VARI = .cells(a,b).value

VARI.NumberFormat = "+0000000" <-- das funktioniert so leider nicht

Und darüber würde ich für die Ausgabe nach ASCII gerne die Schablone legen.
 
Selektier die Zellen mit range(x,y).select und benutzt dann selection.NumberFormat = "0000000" um sie umzuwandeln. Dannach kannst du es so wie du es vorher vorhattest weiterverarbeiten.
Wenn die Zellen in Excel nicht ins Format "0000000" umwandeln willst, dann kopier vorher das Tabellenblatt, wandel das Format um, lies die Daten ein und abschliessend löscht du die Kopie wieder.
 
Hallo GeHo,

sorry das ich noch mal nachfragen muss. Im Prinzip ist mir das auch alles klar.
Wenn ich das so mache, dann wird das Excel-Format auch geändert (stört mich auch nicht weiter) aber das Problem ist, dass dieses Format nicht in die ASCII übernommen wird. Also im Excel steht +0011111, in der Ausgabedatei 111,11.

Leider muss ich noch Mal fragen. Wie bekomme ich die Maskierungen in die Ausgabedatei.

Schon mal vielen Dank für Deine Hilfe!
 
Ich habe mir nun wie folgt beholfen:

MaskBELFD = "000000"
MaskFOLC5 = "00000"
.
.
.
BELFD = BELFD + 1 ' noch mit Nullen auffüllen
M_BELFD = Left(MaskBELFD, (7 - Len(BELFD))) & BELFD
FOLC5 = FOLC5 + 1 ' noch mit Nullen auffüllen
M_FOLC5 = Left(MaskFOLC5, (6 - Len(FOLC5))) & FOLC5

Grüße und noch Mal vielen Dank.

Rocco.
 

Neue Beiträge

Zurück