Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
440to444
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
440to444
440to444
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Text in Zahl konvertieren

Text in Zahl konvertieren
14.06.2004 12:36:59
Christoph Dümmen
Hallo zusammen,
in einer Datei erhalte ich Ziffern, welche als Text formatiert sind. Da ich mit diesen nicht rechnen kann, multipliziere ich sie via VBA mit 1.
Soweit funktioniert auch alles, wenn da nicht das große Aber... wäre:
Es funktioniert gut, wenn die textwerte analog der Regional Settings der Systemsteuerung formatiert sind.
(Text) 200,56 * 1 = (Zahl) 200,56
(Text) 200.56 * 1 = (Zahl) 20056 - schließlich ist ja der Punkt der Tausender Trennpunkt; ist ja verständlich
Aber wie kann ich eine korrekte Konvertierung sicherstellen, wenn die Textwerte mit einem Dezimalpunkt geliefert werden?
Muss ich die Regional Settings via Makro editieren? Wenn ja, wie?
Und:
Application.Decimalseparator
Application.Thousandseparator
Application.UseSystemSeparators
beeinflußt lediglich das Erscheinungsbild, nicht jedoch das Verhalten bei der Konvertierung!
Hilfe, sehe ich den Wald vor lauter Bäumen nicht?
Ich habe mal eine Mappe mit einem Beispiel.
https://www.herber.de/bbs/user/7358.xls
Danke
Christoph

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
=WECHSELN(A1;".";",")*1
14.06.2004 12:50:27
Uduuh
Gruß aus'm Pott
Udo
AW: =WECHSELN(A1;".";",")*1
14.06.2004 13:02:24
Christoph Dümmen
Hallo Udo,
ok, wechseln ist schon schön, nur weiß mein Makro nicht, ob das Format jetzt im englischen oder deutschen Format kommt! Ggf. zerhaue ich mir also damit ein korrektes Format in ein falsches, wenn die Ziffer auch ein Tausendertrennzeichen hat :-(
Gruß
Christoph
AW: =WECHSELN(A1;".";",")*1
14.06.2004 21:32:04
andre
Hallo Christoph,
kommen Deine Zahlen mit maximal 2 Kommastellen? Dann sollte der Punkt in Deinem zweiten Beispiel ja kein Tausender Trennzeichen sein...
ja, genau
15.06.2004 06:26:19
Christoph Dümmen
in dem Beispiel
60.25 ist der Punkt das Dezimaltrennzeichen.
in VBA die Zelle *1 multipliziert bei application.internationalapplication(xlthousandseparator)=. ergibt den Zahlenwert 60.250,00. Gut, nicht wahr?
Viele Grüße
Christoph
Anzeige
AW: ja, genau
18.06.2004 22:30:36
andre
Hallo Christoph,
meine Frage sollte auch Denkanstoss sein. Ein Lösungsansatz wäre das:
[b1] = Replace(Left([a1], Len([a1]) - InStr(1, StrReverse([a1]), ".")), _
".", "", , , vbTextCompare) + Right([a1], InStr(1, StrReverse([a1]), "."))
Ich entferne aus dem Teil vor dem letzten Punkt alle Punkte und addiere den Teil ab dem letzten Punkt dazu. Du könntest vorher prüfen, ob die Kette ein Komma enthält. Wenn ja, ist es eine Zahl, wenn nein, dann dieser Ansatz ...

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige