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

R1C1 Currency Verarbeitung

R1C1 Currency Verarbeitung
04.01.2019 08:14:06
Matthias
Guten Morgen :-)
Folgende Formel habe ich in meinem VBA-Code:
Cells(ActiveCell.Row, 9).FormulaR1C1 = "=RC[-7]*(RC[-2]*Kurs)* " & p_curReserve & " "
Der Wert von p_curReserve ist 1 oder 1,2. Wenn der Wert 1 ist funktioniert die Formel. Wenn der Wert 1,2 ist nicht. Dies liegt an der Umwandlung von . und ,.Ich habe nun folgende die Formel erweitert:
p_curReserve = Replace(p_curReserve, ",", ".")
Cells(ActiveCell.Row, 9).FormulaR1C1 = "=RC[-7]*(RC[-2]*Kurs)* " & p_curReserve & " "
Nun bekomme ich als Wert für p_curReserve 12.
Kann mir jemand helfen?

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: R1C1 Currency Verarbeitung
04.01.2019 08:50:44
Hajo_Zi
man könnte vermuten das "p_curReserve" eine Variable ist. Warum 12 rauskommt siehst nur Du Da Du Deine Datei siehst und den kompletten Code.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
AW: R1C1 Currency Verarbeitung
04.01.2019 09:09:07
Matthias
Ja, "p_curReserve" ist eine Variable as currency. Das nun 12 raus kommt liegt daran das die Replace funktion das Komma weg nimmt und kein Punkt einfügt?
Vor der Replace funktion ist "p_curReserve" = 1,2
Nach der Replace funktion ist "p_curReserve" = 12
Wäre jetzt eine Frage um mein Wissen zu erweitern...
Das ursprüngliche Problem hab ich nun gelöst indem ich "p_curReserve" as String verarbeite...
Somit kann "p_curReserve" = "1" oder "1.2" sein.
Finde die Lösung nicht ganz befriedigend aber soweit läuft es nun ... vorerst ...
Anzeige
AW: R1C1 Currency Verarbeitung
04.01.2019 09:16:24
Hajo_Zi
ich benutze Replace nicht, meine Erfahrung ist das es in Vesion 97 anders ist.
MsgBox Application.Substitute("4,55", ",", ".")
Wie schion geschrieben sehe ich den kompletten Code nicht, was wohl daran liegt das ich nicht auf fremde Rechner vschaue.
Gruß Hajo
AW: R1C1 Currency Verarbeitung
04.01.2019 09:24:15
Luschi
Hallo Matthias,
parke die Formel erst in eine String-Variable, wandle dann den dadurch von Vba eigenmächtig _ umgewandelten Punkt in ein Komma wieder zurück in einen Punkt:

Sub test1()
Dim p_curReserve As String, xFormel As String
p_curReserve = 1.2
xFormel = "=RC[-7]*(RC[-2]*Kurs) * " & p_curReserve
xFormel = Replace(xFormel, ",", ".", 1, -1, vbTextCompare)
Debug.Print xFormel
Cells(ActiveCell.Row, 9).FormulaR1C1 = xFormel
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: R1C1 Currency Verarbeitung
04.01.2019 09:31:32
Matthias
Vielen Dank Luschi :-)
So wie ich jetzt verstanden hab:
1. Die Replace-Funktion bezieht sich nur auf einen String!?
2. Kann ich Currency to String umwandeln? ... und in eine Funktion packen?
Gruss
Matthias
AW: R1C1 Currency Verarbeitung
04.01.2019 10:09:03
Luschi
Hallo Matthias,
das nützt nichts, denn hier greift Vba ohne Dich zu Fragen ein und wandelt den Punkt einfach in das Komma um:
Dim p_curReserve As Double
p_curReserve = 1.2
Debug.print "" & p_curReserve 'Ergebnis: 1,2!!!
Schon die einfache Verkettung mit einem Leerstring ergibt das Komma-Phänomen und das kann man nur im fertigen Formel-String beseitigen.
Sollte es mehrere Kommas im Formelstring geben, die nicht umgewandelt werden müssen, dann so:
Sub test1()
Dim p_curReserve As String, xFormel As String
p_curReserve = "1@2"
xFormel = "=RC[-7]*(RC[-2]*Kurs) * " & p_curReserve
xFormel = Replace(xFormel, "@", ".", 1, -1, vbTextCompare)
Debug.Print xFormel
Cells(ActiveCell.Row, 9).FormulaR1C1 = xFormel
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige