Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1680to1684
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-ersetzen VBA

Suchen-ersetzen VBA
11.03.2019 10:36:49
Joachim
Hallo,
In die Hilfsspalte Q schreib ich den Wert, mach 2 Nachkommastellen, in R kommt die Formel rein, die aus Q Textformat macht, lösch die Formel wieder und dann den Wert in Q auch. Nun muss aus Komma Punkt werden (aus 301,78 muss 301.78). Aber der Replace-Befehl klappt nicht, die Werte stehen dann wieder rechts und das Komma ist auch noch drin.
Ziel ist, die Daten dann als csv zu speichern und in eine MySQL-DB einzulesen. Dort sind die Werte leider mit Punkt drin.
Hier mein Code:
Sheets("PHP").Range("Q" & i).Value = Sheets(tabelle).Range("Z" & i).Value
Sheets("PHP").Range("Q" & i).NumberFormat = "0.00"
Sheets("PHP").Range("R" & i).FormulaR1C1 = "=Text(RC[-1],""0,00"")"
Sheets("PHP").Range("R" & i).Copy
Sheets("PHP").Range("R" & i).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("PHP").Range("Q" & i).ClearContents
Sheets("PHP").Range("R" & i).Replace What:=",", Replacement:=".", LookAt:=xlPart, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Mit Suchen/Ersetzen klappt die Umwandlung, nur nicht in VBA.
Gruß
Joachim

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen-ersetzen VBA
11.03.2019 11:18:05
Daniel
Hi
das Problem ist die automatische Typumwandlung, die nach einem Replace automatisch ausgeführt wird und das das ganze von VBA gemacht wird, von Zahlen im amerikanischen Format ausgeht, dh der Wert "301.78" wird als Zahl erkannt und dann in eine solche gewandelt und erscheint damit in einem deutschen Excel wieder als Kommazahl (weils ja ne Zahl ist)
machst du das ganze von Hand, gelten die deutschen Regeln und es wird die 301,78 als Zahl erkannt.
du solltest hier den Tausch von Komma durch Punkt schon in der Excelformel machen (mit Wechseln / Substitute) und auf das anschließende Replace verzichten:
eigentlich sollte dir dieser Code reichen, den zwischenschritt über Spalte Q brauchst du nicht, weil du ja auch in der Formel direkt auf Spalte 26 zugreifen kannst:
Sheets("PHP").Range("R" & i).FormulaR1C1 = "=Substitute(Text(RC26,""0.00""),"","",""."")"
Sheets("PHP").Range("R" & i).Copy
Sheets("PHP").Range("R" & i).PasteSpecial xlPasteValues
Application.CutCopyMode = False
ich kenne den restlichen Code nicht, aber das "i" lässt auf eine For-Next-Schleife schließen, mit der du einen größeren Zellbereich bearbeitest. Dieses ist hier nicht notwendig, du kannst hiermit alle Zellen gemeinsam bearbeiten:
Gruß Daniel
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige