Hallo,
hat jemand eine Idee wie man Zahlen z.B. immer 3 stellig darstellen kann. Also „002“, „013“.
Besten Dank.
Gruß
Gunny
Hallo,
hat jemand eine Idee wie man Zahlen z.B. immer 3 stellig darstellen kann. Also „002“, „013“.
Besten Dank.
Gruß
Gunny
hat jemand eine Idee wie man Zahlen z.B. immer 3 stellig
darstellen kann. Also „002“, „013“.
Hi Gunter,
in VbA z.B. so:
for N=1 to 10
msgbox right("00" & N,3)
next n
Gruß
Reinhard
Hallo Gunny,
viele Wege führen nach Rom
Um eine Zahl im Format mit 002 oder 013 anzuzeigen, muss sie als Zeichenkette vorliegen!
Du koenntest folgende Wege einschlagen
Variante 1:
Public Function Convert(ByRef vRet As String) As Boolean
If Len(vRet) \> 3 Or Not IsNumeric(vRet) Then Exit Function
Convert = True
Select Case Len(vRet)
Case 1
vRet = "00" & vRet
Case 2
vRet = "0" & vRet
End Select
End Function
Variante 2:
Dim vRet as String
vret=Format$(DeineZahl, "000")
Variante 1:
Es koennen max. Zahlen bis 999 übergeben werden! Sie dürfen aber nur max. 3 stellig sein. Das wiederrum besagt das du keine negativen Zahlen übergeben kannst! Ok das koennte man noch aendern
Desweiteren bekommst du als Result True oder False geliefert, was besagt ob die Konvertierung erfolgreich war
Ein Aufruf koennte wiefolgt ausschauen
Dim vRet as String
vRet=cstr(DeineZahl)
If Convert(vRet) then
'Konvertierung erfolgreich!
else
'Konvertierung fehlgeschlagen
End if
Variante 2:
Hierbei wird + und minus beruecksichtigt. Sie ist schneller als Variante 1. Nachteil ist aber, wenn du eine Zahl übergibst die mehr als 3 Zeichen hat, so bekommst du sie auch zurueck
Bsp. Übergabe
1 -> 001
12 -> 012
123 -> 123
4567 -> 4567 etc.
Wie du siehst führen mehrere Wege nach Rom
MfG Alex
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Reinhard,
in VbA z.B. so:
for N=1 to 10
msgbox right(„00“ & N,3)
next n
wirklich? In VB6 müsste ich die Zahl in einen String umwandeln.
for N=1 to 10
msgbox right("00" & Cstr(N),3)
next n
Gruß, Rainer
Hallo Alex,
vielen Dank.
Habe Variante 2 gewählt, funktioniert bestens.
Danke auch an die Andern.
Gruß
Gunter
Variante 2:
Hierbei wird + und minus beruecksichtigt. Sie ist schneller
als Variante 1. Nachteil ist aber, wenn du eine Zahl übergibst
die mehr als 3 Zeichen hat, so bekommst du sie auch zurueckBsp. Übergabe
1 -> 001
12 -> 012
123 -> 123
4567 -> 4567 etc.Wie du siehst führen mehrere Wege nach Rom
MfG Alex
Hallo,
wirklich?
In VB6 müsste ich die Zahl in einen String
umwandeln.
Konvertiert der Operator „&“ eine Variable in VB6 nicht automatisch in einen String um?
for N=1 to 10
msgbox right(„00“ & Cstr(N),3)
next n
Um noch was produktives beizutragen, hier eine kleine function, die je nach Parameter Zahlen mit beliebiger Anzahl führender Nullen ausgibt:
function GetNumber(Stellen as Integer, Number as Integer) \_
as String
dim KleinerNull as Boolean
dim hlpStr as String
if Number
Gruß,
AlexR
Hi,
Konvertiert der Operator „&“ eine Variable in VB6 nicht
automatisch in einen String um?
???
Ich hab’s mal versucht und …
Private Sub Command1\_Click()
Dim a As String, e As String
Dim b As Integer
a = "2"
b = 3
e = a & b
End Sub
… läuft tatsächlich! e enthält „23“
Danke, das war mir neu, ich habe mit einem Fehler gerechnet!
Gruß, Rainer
Private Sub Command1_Click()
Dim a As String, e As String
Dim b As Integer
a = „2“
b = 3
e = a & b
End Sub… läuft tatsächlich!
e enthält „23“
Danke, das war mir neu, ich habe mit einem Fehler gerechnet!
Hallo Rainer,
Sub tt2()
Dim a As String, b As String
a = „2“
b = „3“
MsgBox a * b 'Ergebnis=6
End Sub
zeigt schon daß Excel mitdenkt, allerdings muß man all das einzeln mal austesten, weil man nie genau weiß in welcher Konstellation, gerade bei automatischen Typumwandlungen, das gewünschte Ergebnis kommt oder der Debugger.
Insofern war deine Erwartung eines Fehlers halt dummerweise die falsche Seite der 50/50-Chance-Münze, aber sehr berechtigt.
Gruß
Reinhard
Gruß, Rainer
Hallo Reinhard,
Sub tt2()
Dim a As String, b As String
a = „2“
b = „3“
MsgBox a * b 'Ergebnis=6
End Sub
*Kopfschüttel* Ich wäre nie darauf gekommen, so etwas zu versuchen.
zeigt schon daß Excel mitdenkt, allerdings muß man all das
einzeln mal austesten, weil man nie genau weiß in welcher
Konstellation, gerade bei automatischen Typumwandlungen, das
gewünschte Ergebnis kommt oder der Debugger.Insofern war deine Erwartung eines Fehlers halt dummerweise
die falsche Seite der 50/50-Chance-Münze, aber sehr
berechtigt.
*gg* Das ist nicht schlimm, ich wollte nur helfen. Mit dem Irrtum kann ich leben.
Ich bin recht überrascht, ich kann aber auch nicht sagen, daß mir das gefallen würde. Das kann doch unerwartete Ergebnisse liefern! Da tippt man etwas falsch, VB rät was wohl gemeint war, irrt sich dabei und ich bekomme ein unverständliches Ergebnis.
Gruß, Rainer
Hallo Reinhard, Rainer,
Wieso solch eine Diskussion?
Habt ihr euch schon einmal gefragt, warum zum Bsp. VB
CINT, CLNG, VAL etc. als Befehle herausgebracht hat?
Bedenkt ihr bitte auch das sowas schnell schief gehen kann und der Übersichtlichkeit nicht gerade fördernd ist?
Schaut euch mal den Stack und den Heap an! Was macht eine Variable wie. Was genau passiert bei diesen Vorgaengen etc. :s
MfG Alex