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

Forumthread: 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
Anzeige

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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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