Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
432to436
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Text in Zahl konvertieren international

Text in Zahl konvertieren international
01.06.2004 01:27:24
Folker
Hallo,
ich möchte einen Wert aus einer Zelle zuverlässig in eine Excel-Dezimalzahl konvertieren. Der Wert in der Zelle kann eine Zahl oder ein Text und das Trennzeichen ein , oder ein . sein, je nach den Regional Settings. Meine Idee war den Wert als Text auszulesen. Das Trennzeichen, falls es ein . ist durch ein , zu ersetzen, das Dezimaltrennzeichen in Excel auf , und das Tausendertrennzeichen auf . zu setzen um unabhängig von den Regional Settings zu sein und dann den Wert als Zahl wieder in die Zelle zu schreiben.
Damit das funtkioniert muss ich den Text in eine Zahl umwandeln, was ich mit
text = "11,22"
CDbl(text)
erledige. Wenn die Regional Settings auf Deutsch stehen kommt da auch "11,22" raus. Stehen sie aber auf amerikanisch kommt auf einmal "1122" raus. Wieso?
Kennt jemand eine Funktion einen Text zuverlässig in eine Dezimalzahl zu verwandeln oder eine ganz andere Möglichkeit das Problem zu lösen?
Vielen Dank
Folker

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text in Zahl konvertieren international
Christoph
Hallo Folker,
mit application.decimalseparator bzw. .thousandsseparator kannst Du die aktuellen Einstellungen auslesen und entsprechend behandeln.
Bei Deinem Beispiel kommt 1122 raus, da das Komma ja das Tausendertrennzeichen ist und somit ignoriert wird.
Gruß
Christoph
AW: Text in Zahl konvertieren international
01.06.2004 09:54:59
Folker
Eben nicht. Ich setze ja die Regional Settings extra auf , als decimalseparator und . als thousand separator damit ich mit . und , kein Problem habe, aber am Ende kommt dann doch nicht die richtige Zahl raus. Hier mal mein Code:

Sub zahlen()
Dim dec As String
Dim thou As String
Dim sys As Boolean
Dim dot As Integer
Dim rng As Range
Dim data As Range
Dim text As String
On Error Resume Next
Set data = Range("A1:A50")
data.NumberFormat = "@"
With Application
dec = .DecimalSeparator
thou = .ThousandsSeparator
sys = .UseSystemSeparators
.DecimalSeparator = ","
.ThousandsSeparator = "."
.UseSystemSeparators = False
End With
For Each rng In data
text = rng.Value
If text <> "" Then
dot = findDot(text)
rng.NumberFormat = "0,00"
If dot > 0 Then text = Application.Replace(text, dot, 1, ",")
rng.Value = CDbl(text)
End If
Next rng
With Application
.DecimalSeparator = dec
.ThousandsSeparator = thou
.UseSystemSeparators = sys
End With
End Sub



Function findDot(ByVal text)
On Error Resume Next
findDot = Application.WorksheetFunction.Find(".", text)
End Function

Anzeige
AW: Text in Zahl konvertieren international
Martin
Hallo Folker,
versuch doch mal folgenden Ansatz ohne VBA. Dein Text "11,22" bzw, "11.22" steht in A1, in B1 folgende Formel:
=1*WECHSELN(A1;".";",")
Gruß
Martin Beck

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige