Amerikanisches Zahlenformat

Beim amerikanischen Format werden die Tausenderstellen mit Komma abgetrennt und die Dezimalstelle mit Punkt.
Das Konvertieren in das deutsche Format erledigt folgende Funktion:

  1. 'Konvertiert amerikanische Zahlen
  2.  
  3. '**** Test ****
  4. msgbox "aus " & "25,255.5" & " wird " & VAL("25,255.5")
  5.  
  6. Public Function VAL(sZahl) 'As Double
  7.  
  8. Dim aZahl
  9. aZahl = Split(Replace(Replace(sZahl, " ",""), ",", ""), ".")
  10.  
  11. Select Case UBound(aZahl, 1)
  12. Case -1
  13. VAL = 0
  14. Case 0
  15. VAL = CDbl(aZahl(0))
  16. Case 1
  17. If Len(aZahl(0)) = 0 Then aZahl(0) = "0"
  18. If Len(aZahl(1)) = 0 Then aZahl(1) = "0"
  19.  
  20. VAL = CInt(aZahl(0)) + (CInt(aZahl(1)) / (10 ^ Len(aZahl(1))))
  21. Case Else
  22. Dim i
  23. Dim lUBound
  24. lUBound = UBound(aZahl, 1)
  25. sZahl = ""
  26. For i = 0 To lUBound - 1
  27. sZahl = sZahl & aZahl(i)
  28. Next
  29. Val = Cint(sZahl) + (CInt(aZahl(lUBound)) / (10 ^ Len(aZahl(lUBound))))
  30. End Select
  31. End Function


Soll nur ein Punkt durch ein Komma ersetzt werden, reicht die REPLACE-Funktion:

  1. msgbox replace ("5.6",".",",")

Wofür sollte man die Funktionen verwenden?:

Schreiben/Lesen von Zahlen, die als Parameter verwendet werden, z. B. in INI-Dateien. Für das Konvertieren von Benutzereingaben sollten weiterhin CDbl und CStr verwendet werden.

Vorgehensweise: