Microsoft Excel

Herbers Excel/VBA-Archiv

FormulaR1C1 > Formula mit SumIf


Betrifft: FormulaR1C1 > Formula mit SumIf von: Immo Woschny
Geschrieben am: 15.08.2018 23:21:21

Hallo, bitte um Hilfe in folgendem VBA Code

Folgende Formel funktioniert:

Range("K14").FormulaR1C1 = "=SUMIF(R[-12]C[5]:R[999985]C[5],"">0"",R[-12]C[5]:R[999985]C[5])"

da ich aber ein variables Ende habe, es eleganter lösen möchten und folgendes definiert habe:

Dim lz As Long
With ActiveSheet
lz = .Cells(.Rows.Count, 2).End(xlUp).Row

würde ich es gerne umbauen, es klappt aber nicht :(

Range("K14").Formula = "=SUMIF(""=P2:P"" & lz,"">0"",""=P2:P"" & lz)"

irgendwer ne Idee ? mehr oder weniger Häkchen oben ? Gleichheitszeichen ? Klammern ? Ich bin am Ende....

  

Betrifft: AW: FormulaR1C1 > Formula mit SumIf von: Daniel
Geschrieben am: 16.08.2018 01:11:44

HI

entschuldige die Frage, haber hast dir schon mal mit eingeschaltetem Gehirn jemals eine Formel angeschaut?
Wo hast du denn gesehen, dass man eine Zelladresse mit gleichheitszeichen davor angibt?
Ich habe so etwas noch nie gesehen und frage mich, wie du auf diese Idee kommst.

entweder so:

Range("K14").FormulaR1C1 = "=SUMIF(R2C16:R" & lz & "C16,"">0"",R2C16:R" & lz & "C16)"
oder so
Range("K14").Formula = "=SUMIF(P2:P" & lz & ","">0"",P2:P" & lz & ")"
wenn man mit dem Zusammenstoppeln der Formeln geistig überfordert ist (was keine Schande ist, mir geht das auch so, zumindest wenn die Formeln länger werden) behilft man sich sich mit folgendem Trick:

dim FO as string
FO = "=SumIf(P2:Pzzz,"">0"",P2:Pzzz")
FO = Replace(FO, "zzz", lz)
Range("K14").Formula = Fo

sind zwar ein paar Programmzeilen mehr, ist dafür aber deutlich übersichtlicher, weil die Formel nicht mehr in mehrere Teile zerrissen wird.
Man muss nur darauf achten, dass man als Dummy-Text einen Text wählt, der ansonsten in der Formel nicht vorkommt.

Wenn Bedingungs- und Summenspalte die gleiche sind, brauchst du die Bedingungsspalte nicht angeben.
dann reicht: =SummeWenn(P2:P100;">0")

Gruß Daniel


  

Betrifft: AW: FormulaR1C1 > Formula mit SumIf von: Immo Woschny
Geschrieben am: 16.08.2018 08:17:35

Guten Morgen,

erst einmal vielen Dank für den Lösungsvorschlag... er funktioniert !

Die Antwort auf Deine Frage kann ich aber auch leicht geben:

Bei den Einen schaltet ab einer gewissen Uhrzeit das Gehirn eine Stufe runter, bei den anderen sind es "nur" die Manieren :)

Ich habe eine Menge ausprobiert, bin neu an der VBA Sache dran und habe einfach einen der letzten verzweifelten Versuche gepostet ohne darüber nachzudenken, wie logisch er noch ist... hätte ich die logisch richtige Version gehabt, hätte ich auch nicht nachfragen müssen.

Jedenfalls vielen Dank für die Beantwortung und die Work-Around Lösung.

Immo


Beiträge aus dem Excel-Forum zum Thema "FormulaR1C1 > Formula mit SumIf"