Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dezimal-Trennzeichen ersetzen (per VBA?)

Forumthread: Dezimal-Trennzeichen ersetzen (per VBA?)

Dezimal-Trennzeichen ersetzen (per VBA?)
07.12.2006 09:59:46
Arne
Guten Morgen zusammen!
Irgendwas stimmt da nicht:
Ich habe meine "Zahl"-Felder in "Text"-Felder umgewandelt, damit ich sie besser formatieren und nachher exportieren kann. Soweit ok.
Jetzt möchte ich das Dezimalen-Trennzeichen Komma (,) durch einen Punkt (.) ersetzen, da die Daten nach dem Export in dieser Form benötige. Über die "Ersetzen"-Funktion funktioniert das BEINAHE reibungslos. Allerdings werden einige Werte (obwohl die Felder als "Text" formatiert sind!!!) als Datum umgewandelt.
Kann man das irgendwie ausschalten? - Wäre super, wenn jemand einen Tipp für mich hätte, ich dreh nämlich so langsam am Rad. :-[

Sub suchen_ersetzen()
Cells.Replace What:=",", Replacement:=".", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=True, SearchFormat:=False, ReplaceFormat:=False
End Sub

Vielen Dank -- Arne
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Dezimal-Trennzeichen ersetzen (per VBA?)
07.12.2006 10:19:48
captain_aws@yahoo.de
Ups, der Code funktioniert ja überhaupt nicht! (War zugegeben nur mit dem Makrorekorder aufgezeichnet, schien mir aber soweit verständlich.)
Der schmeißt mir ja alle Nullen hinter dem Kamma raus. Wieso denn das jetzt?
AW: Dezimal-Trennzeichen ersetzen (per VBA?)
07.12.2006 10:48:47
fcs
Hallo Arno,
Excel liebt nun einmal Zahlen und alles was nach Zahlen riecht wird bei solchen Ersetzungsaktionen in Excel in eine Zahl verwandelt. Ähnliches Problem, wenn man nicht gegensteuert gibt es beim Öffnen von Textdateien.
In diesem Fall, wo die Zellen schon als Text formatiert sind, ist es besser im Zellwert zu ersetzen und den Wert der Zelle wieder zuzuweisen.

Sub suchen_ersetzen()
Dim Zelle As Range
For Each Zelle In ActiveSheet.UsedRange
Zelle.Value = Replace(Zelle.Value, ",", ".")
Next
End Sub

Gruß
Franz
Anzeige
SUPER: Dezimal-Trennzeichen ersetzen (per VBA?)
07.12.2006 11:04:28
Arne
Hallo Franz,
das war's. :-)
Mit Replace hab' ich ja auch herumprobiert. Hab's - mangels Kenntnissen - nur leider nicht geschafft.
Vielen herzlichen Dank und einen schönen Tag!
Gruß - ArnE
;
Anzeige
Anzeige

Infobox / Tutorial

Dezimal-Trennzeichen in Excel ändern


Schritt-für-Schritt-Anleitung

Um das Dezimal-Trennzeichen in Excel zu ändern, insbesondere wenn Du mit VBA arbeitest, kannst Du folgenden Schritten folgen:

  1. Öffne Excel und lade die Datei, in der Du das Dezimal-Trennzeichen ändern möchtest.

  2. Aktiviere den VBA-Editor: Drücke ALT + F11.

  3. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".

  4. Kopiere den folgenden Code in das Modul:

    Sub dezimaltrennzeichenAendern()
       Dim Zelle As Range
       For Each Zelle In ActiveSheet.UsedRange
           Zelle.Value = Replace(Zelle.Value, ",", ".")
       Next
    End Sub
  5. Führe das Makro aus: Schließe den VBA-Editor und kehre zu Excel zurück. Drücke ALT + F8, wähle dezimaltrennzeichenAendern aus und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Problem: Einige Werte werden als Datum umgewandelt.

    • Lösung: Stelle sicher, dass die Zellen als "Text" formatiert sind, bevor Du das Makro ausführst. Du kannst dies tun, indem Du die Zellen markierst, mit der rechten Maustaste klickst und "Zellen formatieren" auswählst.
  • Problem: Der Code entfernt Nullen nach dem Komma.

    • Lösung: Verwende den Zellwert und weise ihn nach der Ersetzung wieder zu, wie im obigen Code gezeigt.

Alternative Methoden

Falls Du keine VBA-Lösungen verwenden möchtest, kannst Du das Dezimal-Trennzeichen auch manuell ändern:

  1. Ersetze über die Suchen-Funktion:

    • Markiere die Zellen, in denen Du das Dezimal-Trennzeichen ändern möchtest.
    • Drücke STRG + H, um das "Suchen und Ersetzen"-Fenster zu öffnen.
    • Setze im Feld "Suchen nach" ein Komma (,) und im Feld "Ersetzen durch" einen Punkt (.).
    • Klicke auf "Alle ersetzen".
  2. Ändere die regionalen Einstellungen:

    • Gehe zu "Systemsteuerung" > "Region und Sprache" und ändere die Formateinstellungen, um das Dezimaltrennzeichen global zu ändern.

Praktische Beispiele

Nehmen wir an, Du hast folgende Zahlen in einer Excel-Datei:

  • 10,5
  • 20,00
  • 30,75

Nach der Ausführung des VBA-Codes wird die Liste so aussehen:

  • 10.5
  • 20.00
  • 30.75

So kannst Du sicherstellen, dass alle Werte korrekt formatiert sind, bevor Du sie exportierst oder weiterverarbeitest.


Tipps für Profis

  • Nutze Variablen: Um das Makro flexibler zu gestalten, kannst Du Variablen für das Suchen- und Ersetzen-Zeichen definieren.

    Sub dezimaltrennzeichenAendern()
      Dim Zelle As Range
      Dim such As String, ersatz As String
      such = ","
      ersatz = "."
      For Each Zelle In ActiveSheet.UsedRange
          Zelle.Value = Replace(Zelle.Value, such, ersatz)
      Next
    End Sub
  • Testen in einer Kopie: Teste immer Deine Makros in einer Kopie deiner Datei, um ungewollte Datenverluste zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich das Dezimaltrennzeichen für eine bestimmte Datei ändern? Du kannst das oben genannte VBA-Makro verwenden, um das Dezimaltrennzeichen in der geöffneten Datei zu ändern.

2. Was passiert, wenn ich das Dezimaltrennzeichen in einer großen Datei ändere? Sei vorsichtig, da das Ändern in einer großen Datei viel Zeit in Anspruch nehmen kann. Stelle sicher, dass die Datei gesichert ist, bevor Du Änderungen vornimmst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige