7.4k Aufrufe
Gefragt in Tabellenkalkulation von tomschi Mitglied (879 Punkte)
Mahlzeit!

In einer Datei sollen bei einzelnen Werten das Dezimaltrennzeichen von Punkt auf Komma geändert werden.
Zeichne ich den manuellen Vorgang Suchen/Ersetzen auf, so klappt alles und aus dem "Wert" wird eine "Zahl" mit der im Anschluss gerechnet werden kann.

Allerdings ersetzt der Makrolauf bei einem erneuten Vorgang nur das Trennzeichen, aber ich kann mit der "Zahl" nicht rechnen.

Irgendwie eine Idee warum dem so ist bzw. wie ich per VBA das Dezimaltrennzeichen tauschen kann, sodass im Anschluss damit gerechnet wird?

siehe www.file-upload.net/download-9942971/Punkt-durch-Komma-ersetzen_Musterdatei01.xls.html

Ciao

Tom

3 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Tom,

deine Zellen sind als Text formatiert, daher erfolgt keine Summierung.
Das kannst z.B. wie folgt ändern (Bereiche anpassen):

Sub multiplizieren()

Dim zelle As Range

For Each zelle In Range("A2:A9")
zelle = zelle.Value * 1
zelle.NumberFormat = "#,##0.00"
Next zelle

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von tomschi Mitglied (879 Punkte)
Hi M.O.!

Danke für Deine rasche Antwort.

Das Zellenformat ist lt. meinem Muster Standard und nicht Text.
Ansonsten würde die Absummierung meines Wissens ja auch nicht mit Suchen/Ersetzen klappen.

Ciao

Tom
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Tom,

wenn ich mir deine Beispieldatei anschaue, dann zeigt Excel ab Zeile 3: "Die Zahl ist als Text formatiert oder es ist ein Apostroph vorangestellt"

Versuch das Ersetzen des Punktes mal mit diesem Code:

ActiveSheet.Range("$A2:$A14").Replace What:=".", Replacement:=".", LookAt:=xlPart, SearchOrder:=xlByRows


Grund: In VBA wird der Punkt als Dezimaltrennzeichen genutzt.

Gruß

M.O.
...