Hallo,
ich würde gerne in die aktive Zelle eine Formel reinschreiben. Leider erhalte ich bei untenstehendem Code immer den Fehler 1004 „Anwendungs- oder objektdefinierter Fehler“:
ActiveCell.Formula = „=SUMMEWENN($F“ & iFirstLine & „
F“ & iLastLine & „;“ & Chr(34) & „=2“ & Chr(34) & „;$E“ & iFirstLine & „
E“ & iLastLine & „)*-1“
Es handelt sich also um eine bedingte Summe, aber irgendwie gibts Probleme mit den Strichpunkten oder so. Hat es möglicherweise auch was mit dem Unterschied Formula und FormulaLocal zu tun? Was ist da eigentlich konkret der Unterschied?
Danke schon mal
MacFrenzy
Hallo,
ich würde gerne in die aktive Zelle eine Formel reinschreiben.
Leider erhalte ich bei untenstehendem Code immer den Fehler
1004 „Anwendungs- oder objektdefinierter Fehler“:
ActiveCell.Formula = „=SUMMEWENN($F“ & iFirstLine & „
F“ &
iLastLine & „;“ & Chr(34) & „=2“ & Chr(34) & „;$E“ &
iFirstLine & „
E“ & iLastLine & „)*-1“
Es handelt sich also um eine bedingte Summe, aber irgendwie
gibts Probleme mit den Strichpunkten oder so. Hat es
möglicherweise auch was mit dem Unterschied Formula und
FormulaLocal zu tun? Was ist da eigentlich konkret der
Unterschied?
Hi Mac,
im „deutschen“ Excel ist die Ländereinstellung für die Makrosprache „amerikanisch“, deshalb musste bei .Formula die englischen Bezeichnungen benutzen.
Bei .Formulalocal die deutschen Bezeichnungen.
Check’s aus mit
msgbox Range(„a1“).formula
und
msgbox Range(„a1“).formulalocal
Ich hab jetzt keine Lust zu testen, was passiert denn bei
sub tt()
iFirstline=1
ilastline=10
ActiveCell.Formula = "=SUMMEWENN($F" & iFirstLine & ":blush:F" & \_
iLastLine & ";" & Chr(34) & "=2" & Chr(34) & ";$E" & \_
iFirstLine & ":blush:E" & iLastLine & ")\*-1"
end sub
Gruß
Reinhard
Hallo,
in VBA gibt es keine Summewenn. hier wird: application.worksheetfunction.sumif geschrieben
mfg
Spaguzzi
Ich hab jetzt keine Lust zu testen, was passiert denn bei
sub tt()
iFirstline=1
ilastline=10
ActiveCell.Formula = „=SUMMEWENN($F“ & iFirstLine & „
F“ & _
iLastLine & „;“ & Chr(34) & „=2“ & Chr(34) & „;$E“ & _
iFirstLine & „
E“ & iLastLine & „)*-1“
end sub
Es soll einfach in die aktuell aktive Zelle als Formel diese bedingte Summe eingetragen werden, die eben von den Variablen iFirstLine und iLastLine abhängt. Wenn ich in Excel diese Formel mit irgendwelchen festen Werten für die Variablen per Hand eintrage, funktionierts natürlich, aber ich will ja gerade dieses Makro haben, das diese Formel automatisch erstellt (weil ich zu faul bin, sie jedesmal abzutippen und anzupassen
. Leider bekomme ich aber die genannte Fehlermeldung „1004: Anwendungs- oder objektspezifischer Fehler“, mit der ich nicht viel anfangen kann. Ich habe ein bisschen rumexperimentiert und meine herausgefunden zu haben, dass es irgendwie am Strichpunkt scheitert. Wenn ich die Argumente der bedingten Summe mal weglasse, gibts keine Fehlermeldung, sobald aber dieser Strichpunkt dazukommt, hakt’s.
Woran könnte das liegen, oder wie kann man einer Zelle sonst sagen, dass in ihr diese Formel ausgerechnet werden soll, die aber auch als Formel im Tabellenblatt in der Zelle steht?
MfG
MacFrenzy
Frag mich nicht warum
Hi Mac,
aber so läuft es:
Sub tt()
iFirstLine = 1
iLastLine = 10
ActiveCell.FormulaLocal = "=SummeWenn($F" & iFirstLine & ":blush:F" & \_
iLastLine & ";" & 2 & ";$E" & \_
iFirstLine & ":blush:E" & iLastLine & ")"
End Sub
Vorher lief nämlich der gleiche Code nicht, dann hab ich alles was leer aussieht rausgeworfen, durch Leerzeichen ersetzt, brachte erst nix, auf einmal gings, *verwirrt schau*
an müsste mal checken welche Zeichen vorher im Code standen, aber egal, jetzt gehts.
Gruß
Reinhard
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]