Excel Makro

hamst0r

PC-Selbstbauer(in)
Hallo,
ich versuche ein Makro zu erstellen, welches automatisch eine Formel in einer Zelle um einen Wert erweitert, jedoch kommt es zu Problemen bei dem Dezimaltrennzeichen.

Code:
Range("G10").Formula = CStr(Range("G10").Formula) & "+" & "0.55"
funktioniert


Code:
Range("G10").Formula = CStr(Range("G10").Formula) & "+" & "0,55"
funktioniert nicht.


Im Endeffekt muss jedoch der Wert aus einer anderen Zelle hinzugefügt werden.

Code:
Range("G10").Formula = CStr(Range("G10").Formula) & "+" & Range("B5").Value
funktioniert leider auch nicht. Auch wenn Range("B5").Value mithilfe von CStr() in einen String umgewandelt wird funktioniert es nicht.


Die alte Formel soll also nur erweitert werden. Der Wert soll nicht direkt addiert werden. Aus =1,5+2,5 soll nachdem 3,5 hinzugefügt wurde also =1,5+2,5+3,5 stehen und nicht =7,5
 
Zuletzt bearbeitet:
Probier's mal mit:

Code:
Range("G10").Value = Range("G10").Value & "+" & CStr(Range("B5").Value)

Habe es grade mal bei mir getestet und da funktioniert's :-)
 
Dadurch wird leider die vorherige Formel ausgeführt und zusammengerechnet, d.h. die Einzelwerte sind daraufhin verschwunden. Trotzdem danke schonmal :daumen:
 
Hm, ich hatte die Zelle G10 vorher als Text formatiert, ist das bei dir auch der Fall?

Sonst sag Excel sicherheitshalber, dass beide Zellen als String gewertet werden sollen:

Code:
Range("G10").Value = CStr(Range("G10").Value) & "+" & CStr(Range("B5").Value)

Ansonsten könntest du es optional auch so probieren:

Code:
Range("G10").Value = "'" & CStr(Range("G10").Value) & "+" & CStr(Range("B5").Value)

Durch das ' zu Beginn der Zelle sagst du Excel dann ja einfach, dass er den Inhalt immer als Text verstehen soll. Excel ist dabei sogar so schlau, dass es bemerkt wenn da 2x ' stehen würde und macht es zu einem ', das heißt das Makro lässt sich trotzdem beliebig oft hintereinander ausführen.

Funktioniert eine dieser Lösungen?
 
Der Inhalt von G10 war vorher =0,78+0,61+0,71+0,94+2*2,82+2*1,43+0,8+1,61+1,61+2,86 mit dem daraus resultierendem Wert 18,42. Jedoch nimmt dein Code den Wert und nicht die Formel und es kommt '18,42+2,207 (Inhalt von B5), jedoch soll nachher =0,78+...+2,86+2,207 da stehen. Deshalb habe ich .Formula anstatt .Value genommen.
 
Funktioniert dieser Workaround?

Code:
Range("G10").Formula = "'" & CStr(Range("G10").Formula) & "+" & CStr(Range("B5").Value)
Range("G10").Replace What:=".", _
    Replacement:=",", _
    LookAt:=xlPart, _
    SearchOrder:=xlByRows, _
    MatchCase:=False, _
    SearchFormat:=False, _
    ReplaceFormat:=False


Edit:
Habe mich noch einmal dran gesetzt, so hat es bei mir funktioniert wie es, wenn ich das richtig verstanden habe, gewollt ist:

Code:
Range("G10").Formula = Range("G10").Formula & "+" & Range("B5").Formula

So wird bei mir das Ergebnis in der Zelle angezeigt, im Zellinhalt jedoch weiterhin die vollständige Rechnung. Ich verstehe zwar nicht, warum das "CStr()" nicht akzeptiert wird, aber naja...
 
Zuletzt bearbeitet:
Funktioniert so leider beides nicht. Der zweite Versuch geht nicht, da B5 eine eigene Formel hat, wodurch nicht der Wert 2,207 sondern die Formel dazu angehängt wird. Ich kann später die Datei einmal hochladen und vielleicht findet sich dann der Fehler
 
Kann hier leider keine Excel Datei hochladen.

Habe aber weiterhin keine Lösung gefunden um an eine bestehende Formel den Wert einer anderen anzuhängen. Es soll also quasi die Formel um den String "+<Wert aus Zelle>" erweitert werden
 
Hallo zusammen,

also wenn ich es richtig verstehe hast du eine fertige Formel z.B.: "A1+A2+A3+..." und möchtest dort einen Wert anhängen z.B.: "0,55".

Das Ergebnis soll dann sein "A1+A2+A3+...+0,55" ?



Probier bitte mal folgendes:
Range("G10").FormulaLocal = Range("G10").Formula & "+" & Range("DeineZelleBitte").Value

Mein Code sieht wie folgt aus:
ThisWorkbook.ActiveSheet.Range("D2").FormulaLocal = ThisWorkbook.ActiveSheet.Range("C2").Formula & "+" & ThisWorkbook.ActiveSheet.Range("D1").Value

Falls es nicht klappt wäre interessant zu wissen welches Office du benutzt und in welcher Sprache :)
 
Hi hamst0r,

Ich benutze auch Office 2013 (x64) in Deutsch, sollte soweit eigentlich identisch sein.

Ich hab dir einfachheitshalber mal Screenshots gemacht, ich hoffe die helfen weiter.

Es sind jetzt zwei etwas verschiedene Formeln welche das Ergebnis bei mir liefern so wie du es braucht, sofern ich dich richtig verstanden habe ;-)

image.jpg image.jpg
 
Nein leider nicht, kann ich irgendwo die Datei hochladen ohne gegen die Forenrichtlinien zu verstoßen? Ich weiß selber keine Lösung wieso es bei euch funktioniert und bei mir nicht
 
Zurück