Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1604to1608
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

Makro löscht "." anstatt zu ersetzen

Makro löscht "." anstatt zu ersetzen
31.01.2018 09:39:31
Marc
Hallo liebes Herber Forums Team,
ich habe eine komisches Phänomen:
Ich habe ein Makro aufgezeichnet, welches unter anderem einen "." durch ein "," ersetzen soll. Wenn ich das über STRG+H durchführe, macht er alles korrekt, mache ich es mit dem Makro:
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
löscht er mir bei dem Wert 1.375 den Punkt und macht 1375 anstatt 1,375 draus...
Wie gesagt, wenn ich das manuell über STRG+H mache, läuft das wunderbar!
Bei 3 Werten von fast 5000 macht er diesen Blödsinn....
Was mache ich falsch?
Lieben Gruß
Marc

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

Betreff
Datum
Anwender
Anzeige
AW: Makro löscht "." anstatt zu ersetzen
31.01.2018 09:53:45
hary
Moin
Lies das mal durch.
https://support.microsoft.com/de-de/help/510240
gruss hary
AW: Makro löscht "." anstatt zu ersetzen
31.01.2018 10:09:41
Marc
Hallo Hary,
das ist ja der knaller!!
Damit schmiert mein Makro komplett ab, weil ich über die Spalte D:E suchen und ersetzen muss... :)
Blöd aber Danke!
Lieben Gruß
Marc
AW: Makro löscht "." anstatt zu ersetzen
31.01.2018 12:36:38
Kai
Hallo Marc,
eigentlich ist die Lösung doch schon auf der von Hary verlinkten Seite zu finden.
Hier mal für die Spalten D und E angepaßt:
Sub Punkt_durch_Komma_ersetzen()
On Error Resume Next
'Die Variablen werden definiert
Dim varInhalt As Variant
Dim varNeu_inhalt As Variant
Dim oZelle As Object
Dim lngLetzteZeileD As Long
Dim lngLetzteZeileE As Long
Dim i As Integer
'Letzte Zeilen in den Spalten D und E ermitteln
lngLetzteZeileD = ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
lngLetzteZeileE = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row
'Höhere Zeile auswählen
If lngLetzteZeileD >= lngLetzteZeileE Then
i = lngLetzteZeileD
Else
i = lngLetzteZeileE
End If
'Die "For Each"-Schleife mit der Festlegung des Zellbereiches wird gestartet
For Each oZelle In ActiveWorkbook.ActiveSheet.Range("D1:E" & i)
'Der Zellinhalt wird ausgelesen
varInhalt = oZelle.Value
'Der Zellinhalt wird um den Apostroph ergänzt
oZelle = "'" & varInhalt
'Der Punkt wird durch das Komma ersetzt
oZelle.Replace what:=".", replacement:=","
'Der neue Inhalt wird in die Zelle zurückgeschrieben
varNeu_inhalt = oZelle.Value
Next oZelle
End Sub
Gruß
Kai
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige