Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Englisches Zahlenformat umwandeln

Forumthread: Englisches Zahlenformat umwandeln

Englisches Zahlenformat umwandeln
08.07.2003 11:36:18
Bernhard
Hallo liebe Excel-Profis,
ich habe da ein Problem, dass ich so per Recherche hier bei Herber noch nicht gesehen habe, vielleicht könnt Ihr mir da weiter helfen:
Ich bekomme per Textfile Zahlen angeliefert in diesem Format, wenn ich das Textfile per VBA in Excel öffne:
'----Beispielauszug----------
;AB;1,463,665.39
;AB;-1,001,960.8
;AB;-155.39
;AC;28.89
;AC;61,611,969.54
'----------------------------
Wie kann ich per eleganter VBA-Formel oder generell die Zahl "1,463,665.39" so drehen, dass
1. Excel damit rechnen kann (wird ja nur als Text erkannt) und
2. das Format nachher deutsch ist ("1.463.665,39") bzw. ohne Tausendertrennzeichen ("1463665,39") erscheint.
Für einen kleine Tipp wäre ich echt dankbar.
Gruss,
Bernhard
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Englisches Zahlenformat umwandeln
08.07.2003 11:52:19
Holger Levetzow
mal als Beispiel für Zelle A3 (auf alle Zellen ausweiten):

Sub Makro1()
zahl = Range("A3")
Do
On Error GoTo weiter
i = WorksheetFunction.Find(",", zahl)
zahl = WorksheetFunction.Replace(zahl, WorksheetFunction.Find(",", zahl), 1, "")
Loop Until i = 0
weiter:
On Error GoTo ende
i = WorksheetFunction.Find(".", zahl)
zahl = WorksheetFunction.Replace(zahl, WorksheetFunction.Find(".", zahl), 1, ",")
i = 1
ende:
Range("A3").NumberFormat = "#,##0.00"
Range("A3") = zahl * 1
End Sub

Holger

Anzeige
AW: Englisches Zahlenformat umwandeln
08.07.2003 13:22:10
Dietmar
Ab Excel 2002 lässt sich das in den Optionen einstellen.
Bis Excel 2000 könnte man auch beim öffnen mit dem Importassistenten
bei "weitere ..." die Dezimal- und Tausender-Trennzeichen bestimmen.


AW: Englisches Zahlenformat umwandeln
08.07.2003 14:33:32
Bernhard
Hallo Dietmar,
besten Dank auch für deine Tipp.
Hab ich ausprobiert, nur:
Wenn ich bei der Option "Weitere..." für meine Spalte WERTE als Dezimaltrennzeichen ein Komma "," und als Tausender-Trennzeichen einen Punkt "." eingebe funktioniert es nicht!
Erst wenn ich genau umgekehrt als Dezimaltrennzeichen ein Punkt "." und als Tausender-Trennzeichen ein Komma "," eingebe, wird meine Zahl "1,496,764.00" wunschgemäß in "1.496.764,00" umgewandelt. Komisch!
An der Window-Ländereinstellung liegt es nicht, das habe ich überprüft. Hast du eine Ahnung woran das liegen kann?
Gruss,
Bernhard

Anzeige
AW: Englisches Zahlenformat umwandeln
08.07.2003 13:03:43
Bernhard
Hallo Holger,
allerbesten Dank für deine Bemühung. Ich habe es mal ausprobiert und es scheint zu funktionieren.
Eine Frage habe ich aber noch:
Wozu hast du das "Range("A3") = zahl * 1" am schluss eingebaut??
Gruss,
Bernhard

AW: Englisches Zahlenformat umwandeln
08.07.2003 13:45:17
Holger Levetzow
das war nur zur Vorsicht. "zahl" ist ein Text und wird dann als Zahl in die Tabelle eingetragen.

Anzeige
AW: Englisches Zahlenformat umwandeln
08.07.2003 13:52:19
Bernhard
Ok, danke!

;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Englisches Zahlenformat in Excel umwandeln


Schritt-für-Schritt-Anleitung

Um das englische Zahlenformat in Excel in das deutsche Format umzuwandeln, kannst du die folgende VBA-Makroanweisung verwenden. Diese wird die Zahlen so umwandeln, dass sie in Excel korrekt erkannt und weiterverarbeitet werden können.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub Makro1()
    Dim zahl As String
    zahl = Range("A3") ' Hier wird die Zelle A3 verwendet, ändere dies nach Bedarf
    Do
        On Error GoTo weiter
        i = WorksheetFunction.Find(",", zahl)
        zahl = WorksheetFunction.Replace(zahl, WorksheetFunction.Find(",", zahl), 1, "")
    Loop Until i = 0
weiter:
    On Error GoTo ende
    i = WorksheetFunction.Find(".", zahl)
    zahl = WorksheetFunction.Replace(zahl, WorksheetFunction.Find(".", zahl), 1, ",")
    i = 1
ende:
    Range("A3").NumberFormat = "#,##0.00"
    Range("A3") = zahl * 1 ' Konvertierung von Text zu Zahl
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Wähle die Zelle aus, die die englische Zahl enthält, und führe das Makro aus.

Häufige Fehler und Lösungen

  • Fehler: Die Zahl wird nicht korrekt umgewandelt.

    • Lösung: Stelle sicher, dass das Eingabeformat in der richtigen Zelle steht und die Zelle als Text formatiert ist.
  • Fehler: Das Makro funktioniert nicht in älteren Excel-Versionen.

    • Lösung: Ab Excel 2002 kann das Zahlenformat in den Optionen eingestellt werden, um die Umwandlung zu erleichtern.
  • Problem: Die Dezimal- und Tausendertrennzeichen werden nicht richtig erkannt.

    • Lösung: Wenn du beim Importieren von Daten die falschen Trennzeichen verwendest, probiere es umgekehrt: setze das Dezimaltrennzeichen auf Punkt und das Tausendertrennzeichen auf Komma.

Alternative Methoden

  1. Importassistent nutzen:

    • Beim Öffnen einer CSV-Datei kannst du den Importassistenten verwenden, um die Trennzeichen manuell festzulegen.
    • Wähle "Weitere..." und gebe als Dezimaltrennzeichen einen Punkt und als Tausendertrennzeichen ein Komma ein.
  2. Excel-Funktion verwenden:

    • Du kannst auch die Funktion WECHSELN verwenden, um die Trennzeichen direkt in Excel zu ändern, ohne VBA zu verwenden:
    =WECHSELN(WECHSELN(A3;",";"");".";",")

Praktische Beispiele

Angenommen, du hast die folgende Zahl im englischen Format in Zelle A3: 1,463,665.39. Um diese in das deutsche Format umzuwandeln, kannst du das oben genannte VBA-Makro verwenden. Nach der Ausführung wird die Zahl in der Zelle A3 als 1.463.665,39 angezeigt.


Tipps für Profis

  • Achte darauf, dass du die richtige Regionseinstellung in Windows hast, da dies die Art der Zahleneingabe beeinflussen kann.
  • Wenn du oft mit englischen Zahlenformaten arbeitest, könnte es hilfreich sein, eine benutzerdefinierte Excel-Vorlage zu erstellen, die das Makro bereits enthält.
  • Nutze die Möglichkeit, VBA-Module zu speichern und wiederzuverwenden, um den Prozess zu automatisieren und Zeit zu sparen.

FAQ: Häufige Fragen

1. Wie kann ich die Excel-Einstellungen ändern, um das englische Zahlenformat zu unterstützen?
Du kannst die Ländereinstellungen in der Systemsteuerung anpassen, um die Trennzeichen zu ändern.

*2. Was bedeutet `Range("A3") = zahl 1` im Makro?**
Dieser Befehl konvertiert den Text in eine Zahl, sodass Excel mit den Werten rechnen kann.

3. Sind diese Schritte in allen Excel-Versionen anwendbar?
Das VBA-Makro funktioniert in den meisten Versionen, wobei die Importoptionen je nach Version variieren können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige