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

Replace Befehl im Makro

Replace Befehl im Makro
09.11.2015 10:03:16
Robert
Hallo,
ich habe bei folgender Aufgabe ein Problem:
In einer Tabelle werden Daten aus einer txt Datei eingelesen. Grundsätzlich sind Werte wie "34,345 €" enthalten, welche auch problemlos von Excel als Zahl mit der entsprechenden Formatierung erkannt werden. Manchmal enthalten die Daten jedoch noch eine weitere Angabe und sehen dann folgendermaßen aus "34,345 € g".
In Excel selbst kann ich nach " g" suchen und durch "" ersetzen. Alles gut. Nun würde ich das gerne automatisieren.
Verwende ich den Replace Befehl, macht Excel aus "34,345 € g" "34.345,00 €".
Alternativ hätte ich es mit
If Right(Selection, 1) = "g" Then
zeichen = Selection.Characters.Count
Selection = Left(Selection, zeichen - 3)
versucht.
Auch hier erhalte ich das gleiche Ergbnis wie bei Replace.
Fällt Euch eine Lösung ein?
Vielen Dank vorab.
Viele Grüße
Robert

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Replace Befehl im Makro
09.11.2015 10:16:37
Rudi
Hallo,
bei mir geht das.
msgbox replace("34,345 € g","g","")
Gruß
Rudi

AW: Replace Befehl im Makro
09.11.2015 10:49:47
Daniel
Hi Rudi
es ist klar, das das geht, das ist aber nur die erste Hälfte des Problems.
Teste doch mal vollständig:
Selection.Value =  replace("34,345 € g","g","")

Gruß Daniel

AW: Replace Befehl im Makro
09.11.2015 10:55:20
Rudi
Hallo,
OK.
Machen wir ne Zahl daraus.
Selection.Value = replace("34,345 € g","g","")*1
Gruß
Rudi

AW: Replace Befehl im Makro
09.11.2015 10:17:53
Daniel
Hi
ein Replace/Ersetzen ist wie eine Neueingabe des Wertes, welche zur Folge hat, dass Excel erneut prüft, ob der vorliegende Text wie ein Zahl, ein Datum oder eine Formel aussieht und dann den Text entsprechend umwandelt.
Problem an der Sache ist, dass wenn das Replace/Ersetzen von VBA bzw per Makro ausgeführt wird, dann Excel für diese Prüfung immer die englischen Zahlen-, Datums- und Formelschreibweisen anwendet.
Dh dein Komma ist dann das Tausendertrennzeichen.
(machst du das Ersetzen von Hand, wendet Excel für die Prüfung die Schreibweisen der jeweiligen Ländereinstellung an, dh in deinem Fall deutsch.
dh wenn du dieses Ersetzen per VBA ausführen lässt, musst du vorher das Komma durch den Punkt ersezten, damit die Zahl einer englischen Zahl entspricht.
Gruß Daniel

Anzeige
AW: Replace Befehl im Makro
09.11.2015 11:25:07
Robert
Hallo Daniel,
genau dies habe angenommen. Nachdem es scheinbar keine Lösung seitens Excel gibt, habe ich der Einfachheit halber folgenden Code verwendet:
Selection.Replace What:=".", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:=" g", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Vielen Dank an alle!
Viele Grüße
Robert

Anzeige
AW: Replace Befehl im Makro
09.11.2015 10:20:45
JoWE
Hallo Robert,
XL2013: Mit dem Makrorekorder aufgezeichnet:
Cells.Replace What:="g", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Es funktioniert ohne Fehler.
Gruß
Jochen

AW: Replace Befehl im Makro
09.11.2015 11:12:49
Robert
Hallo Jochen,
vielen Dank, aber genau hier tritt bei mir der Fehler immer wieder auf.
VG

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige