Hallo Ch.
Du magst noch VBA-grün hintern den Ohren sein, Du hast trotzdem was dazwischen.
Wenn ich sage probiere und schaue, dann vielleicht nicht in deine Datei und nicht bis Zeile 307, aber nehme ein frisches Blatt, rechtklick auf dem Reiter auf "Code anzeigen" und füge den Code ein, dann F5 (Run):
Sub test()
With Range("B1:B5")
.FormulaLocal = "=Summe($A$1:A1)"
End With
End Sub
und dann schaue, was in B1, B2, usw. drin steht. Es kostet nicht mehr als 2 Minuten und Du hast mehr Wissen und selbst-Erfahrung, als Du in Forums abfragen kannst (kostet auch Zeit).
Zweitens: "entdecke die Regeln"
Siehe =WENN(BX10>1;(RUNDEN(BY10/M10;0)*M10);"")
und =WENN(BX10>1;(RUNDEN(BY10/M10;0)*M10);"")+(M10/2)
siehst Du was? In einem gibt es ein "+", in den anderen nicht: das ist eine Regel. Das ist dein festen Punkt: wenn ich ein Plus habe, muss ich die Formel ohne Plus reinbringen. Und umgekehrt. Also:
Private Sub CommandButton14_Click()
'jeweils bei Klick auf Button wird in Spalte BZ "+(jeweilige Zeile/2) hinzugefügt oder gelöscht
With Range("BZ10:BZ307")
If InStr(1, .Range("A1").Formula, "+") Then
'Range("A1") ist hier relativ zu BZ10:BZxx, also es ist BZ10.
'InStr: lege den Cursor drauf und Klicke Strg+F1
.FormulaLocal = "=WENN(BX10>1;(RUNDEN(BY10/M10;0)*M10);"""")" 'Hochkommas innerhalb von String müssen gedoppelt werden
Else
.FormulaLocal = "=WENN(BX10>1;(RUNDEN(BY10/M10;0)*M10);"""")+(M10/2)"
End If
End With
End Sub
Ich habe kein Problem, wenn Du dein eigenes Code verwenden möchtest, aber nicht mit der Begründung, dass es Dir zu mühsam ist, sich mit meiner Erklärungen ausseinander zu setzen. Es ist absurd, um einen Rat zu bieten, um den anschliessend zu ignorieren.
VG
Yal
|