Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1376to1380
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
Inhaltsverzeichnis

Suchen und Ersetzen Makro

Suchen und Ersetzen Makro
20.08.2014 14:57:27
kk_vba
Hallo,
mir stellt sich folgendes Szenario:
Ich habe mehrere Spalten, die mit Zahlen als Text gefüllt sind und zwar in folgendem Format:
5.89
19.99
3.76578
Nun möchte ich die Punkte mit Kommas ersetzen um später die Zellen als Zahl zu formatieren und zu berechnen.
Ich markiere also die Spalte, Suche nach "." ersetze durch ",".
So weit alles ok.
Das habe ich nun als Makro aufgezeichnet und ein bisschen bereinigt und der Code sieht wie folgt aus:

Columns("N:N").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Das Makro funktioniert jetzt nicht 100%ig. Bei den Zellen, die viele Stellen hinter dem "." haben, wird der Punkt einfach gelöscht anstatt ersetzt. Bei den anderen Spalten funktioniert er einwandfrei.
Ich kann mir nicht erklären woran das liegt... über Hilfe wäre ich dankbar.
Danke und Grüße

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen und Ersetzen Makro
20.08.2014 15:09:24
Daniel
Hi
das ist die Excelianische Sprachverwirrung.
Wenn du Werte durch ERSETZEN/REPLACE änderst, dann ist das für Excel wie eine Neueingabe.
Dh Excel prüft die eingegebene Zeichenfolge, ob es sich dabei um eine Formel, eine Zahl, ein Datum oder einen Text handeln könnte und behandelt sie entsprechen und macht daraus eine Formel wenn die Zeichenfolge mit "=" beginnt, eine Zahl, wenn sie wie eine Zahl ausssieht, ein Datum, wenn sie wie ein Datum aussieht, und ansonsten wie Text.
Das Problem ist jetzt, dass Excel mit dir "deutsch" spricht, dh damit es eine Zahl als Zahl erkennt muss diese im Deutschen Zahlenformat mit dem Komma als Dezimalzeichen geschrieben sein.
Mit VBA unterhält sich Excel jedoch in den meisten Fällen auf "englisch", dh wenn VBA einen Wert in die Zellen schreibt, muss dieser dem Englsichen Zahlenformat entsprechen (Punkt als Dezimalzeichen), damit Excel den Wert als Zahl erkennt.
das führt dann zu der etwas paradox anmutenden Situation, dass du hier den Punkt durch einen Punkt ersetzen musst, damit die Texte in Zahlen gewandelt werden, wenn du das Ersetzen per Makro ausführen lässt:
Columns("N:N").Replace What:=".", Replacement:=".", LookAt:=xlPart
Gruß Daniel
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige