Discussion:
VBA-Pendant zur Formel TEXT(A1;"00000")
(zu alt für eine Antwort)
Jörg Eisenträger
2004-09-19 20:21:16 UTC
Permalink
Hallo,

ich möchte per VBA eine maximal 5stellige Zahl in einen String mit
führender Null umwandeln.

Wie heißt das VBA-Pendant zur Textfunktion?


Gruß
Jörg
--
LPs auf CD brennen - so geht's: http://www.joergei.de/

Bei Antworten per E-Mail bitte den Unterstrich aus der Adresse entfernen.
Melanie Breden
2004-09-19 20:32:25 UTC
Permalink
Hallo Jörg,
Post by Jörg Eisenträger
ich möchte per VBA eine maximal 5stellige Zahl in einen String mit
führender Null umwandeln.
Wie heißt das VBA-Pendant zur Textfunktion?
dafür gibt es die Format-Funktion:

Format("123", "00000")
oder
Format(strText, "00000")
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Herbert Taferner
2004-09-19 20:40:06 UTC
Permalink
Hallo Melanie,
Post by Melanie Breden
Format("123", "00000")
oder
Format(strText, "00000")
bei mir geht's so nicht ?

Sub Werte()
Dim zelle
For Each zelle In Selection
zelle.Value = Format(zelle, "'00000")
Next
End Sub

mfg Herbert
Melanie Breden
2004-09-19 20:55:49 UTC
Permalink
Hallo Herbert,
Post by Herbert Taferner
Post by Melanie Breden
Format("123", "00000")
oder
Format(strText, "00000")
bei mir geht's so nicht ?
Sub Werte()
Dim zelle
For Each zelle In Selection
zelle.Value = Format(zelle, "'00000")
Next
End Sub
Schreibe mal im Direktfenster:
?Format("123", "00000")
und beende die Eingabe mit der 'Enter'-Taste.

Du verwendest die gleiche Syntax, wie von mir vorgeschlagen.
Der Unterschied ist nur, dass du den umgewandelten Wert in eine Zelle
schreiben willst, die vermutlich das Standard-Format aufweist.
Dort werden dann die führenden Nullen wieder eliminiert.

Um das zu verhindern muss die Zelle im Textformat formatiert werden.
Dies entweder über die NumberFormat-Eigenschaft, oder wie von dir
eingesetzt mit einem vorangestellten Hochkomma.
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Herbert Taferner
2004-09-19 21:28:20 UTC
Permalink
Hallo Melanie,
Post by Melanie Breden
?Format("123", "00000")
und beende die Eingabe mit der 'Enter'-Taste.
das ist mir schon klar,

aber soweit ich das verstanden
habe sollte ja das Gegenstück von
=TEXT(A1;"00000")
in VBA gefunden werden

und wenn ich dies in die Zelle eintrage
dann steht das gewünschte Ergebnis drin
und das Zellenformat ist aber trotzdem Standard
und nicht Text
Post by Melanie Breden
Du verwendest die gleiche Syntax, wie von mir vorgeschlagen.
Der Unterschied ist nur, dass du den umgewandelten Wert in eine Zelle
schreiben willst, die vermutlich das Standard-Format aufweist.
Dort werden dann die führenden Nullen wieder eliminiert.
Um das zu verhindern muss die Zelle im Textformat formatiert werden.
Dies entweder über die NumberFormat-Eigenschaft, oder wie von dir
eingesetzt mit einem vorangestellten Hochkomma.
mfg Herbert
Melanie Breden
2004-09-19 21:35:47 UTC
Permalink
Hallo Herbert ,
Post by Herbert Taferner
Post by Melanie Breden
?Format("123", "00000")
und beende die Eingabe mit der 'Enter'-Taste.
das ist mir schon klar,
aber soweit ich das verstanden
habe sollte ja das Gegenstück von
=TEXT(A1;"00000")
in VBA gefunden werden
und wenn ich dies in die Zelle eintrage
dann steht das gewünschte Ergebnis drin
und das Zellenformat ist aber trotzdem Standard
und nicht Text
hmm, also das Gegenstück zur Text-Funktion ist in VBA die Format-Funktion.
Welches Format darin angegeben wird und wo und wie diese letztendlich eingesetzt
wird, bleibt dem Anwender überlassen.

Ich erkenne aus der Fragestellung auf den ersten Blick auch nicht, dass das
Ergebnis in eine Zelle eingetragen werden soll.

Warten wir mal ab, was Jörg genau mit dem umgewandelten Wert tun will.
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Jörg Eisenträger
2004-09-20 17:56:46 UTC
Permalink
Hallo Melanie und Herbert,

vielen Dank für Eure Antworten.
Post by Melanie Breden
hmm, also das Gegenstück zur Text-Funktion ist in VBA die Format-Funktion.
Genau die hatte ich gesucht, weil
strMyNumber = Text(intMyNumber, "00000")
wollte mein VBA nicht.
Format(intMyNumber, "00000") hat ihm gefallen. :-)

Und dass man das Stichwort "Format" braucht, um in der Onlinehilfe etwas
zu finden über Text, String, Number, umwandeln, ... darauf muss man erst
mal kommen.
Post by Melanie Breden
Welches Format darin angegeben wird und wo und wie diese letztendlich eingesetzt
wird, bleibt dem Anwender überlassen.
Warten wir mal ab, was Jörg genau mit dem umgewandelten Wert tun will.
strMyNumber wird in einem Textfeld einer Userform (nur) angezeigt.
Gerechnet wird mit intMyNumber - die Werte stehen in einer
(ausgeblendeten) Spalte.
In einer anderen Spalte (nur zum Anzeigen) wird die Textfunktion
verwendet.

Also: Alles palletti (falls das so geschrieben wird).

Gruß
Jörg
--
LPs auf CD brennen - so geht's: http://www.joergei.de/

Bei Antworten per E-Mail bitte den Unterstrich aus der Adresse entfernen.
Melanie Breden
2004-09-20 18:25:26 UTC
Permalink
Hallo Jörg,
Post by Jörg Eisenträger
strMyNumber = Text(intMyNumber, "00000")
wollte mein VBA nicht.
es gibt noch eine andere Möglichkeit neben der Format-Funktion.
Und wenn du die nimmst, lagst du eigentlich gar nicht so falsch, es fehlt nur ein Wort:

strMyNumber = Application.Text(intMyNumber, "00000")
Post by Jörg Eisenträger
Format(intMyNumber, "00000") hat ihm gefallen. :-)
Und dass man das Stichwort "Format" braucht, um in der Onlinehilfe etwas
zu finden über Text, String, Number, umwandeln, ... darauf muss man erst
mal kommen.
Ja, aber wenn man es mal weiss...
Post by Jörg Eisenträger
strMyNumber wird in einem Textfeld einer Userform (nur) angezeigt.
Gerechnet wird mit intMyNumber - die Werte stehen in einer
(ausgeblendeten) Spalte.
In einer anderen Spalte (nur zum Anzeigen) wird die Textfunktion
verwendet.
Also: Alles palletti (falls das so geschrieben wird).
Word meint dazu: "paletti " ;-)

Aber dies ist ja die Excel NG und nicht Word *LOL*
--
Mit freundlichen Grüssen

Melanie Breden
- Microsoft MVP für Excel -

http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
Loading...