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

Formel via VBA

Formel via VBA
15.04.2021 15:51:58
Mike
Hi,

mir platzt hier gleich der Kopf - bekomme das einfach nicht auf die Reihe und hoffe ihr könnt helfen.


Ich möchte via VBA eine Excel-Formel in eine Zelle schreiben. Das wäre per se auch erst mal kein Problem, wenn die Formel zum einen nicht konkateniert wäre und zum anderen ich auch noch die Anführungszeichen "escapen" muss.
Letzteres geht ja auch erst mal einfach, indem man einfach 2 Anführungszeichen schreibt, aber die Kombination und Länge der Formel sprengt mein Vermögen :(



Konkret sieht die (korrekte) Excel-Formel so aus:

=ZÄHLENWENN(B11:B999;"MA1")&" ("&(ZÄHLENWENNS(B11:B999;"=MA1";E11:E999;"=Ja") &" - "&ZÄHLENWENNS(B11:B999;"=MA1";E11:E999;"=NEIN")&" - "&ZÄHLENWENNS(B11:B999;"=MA1";E11:E999; "=Vielleicht")&")") 

Das Ergebnis wäre dann z.B. sowas hier: 48 (1 - 1 - 1)

Wenn ich das versuche zu übertragen wirds so was:

Sheets("Tabelle1").Cells(6, 1).FormulaLocal = "=ZÄHLENWENN(B11:B999;""MA1"")&" ("&(ZÄHLENWENNS(B11:B999;""=MA1"";E11:E999;""=Ja"")&" - "&ZÄHLENWENNS(B11:B999;""=MA1"";E11:E999;""=NEIN"")&" - "&ZÄHLENWENNS(B11:B999;""=MA1"";E11:E999;""=Vielleicht"")&")")"

Ergebnis: Nur noch Fehlermeldungen...egal wie viele oder wenig " oder & ich setze.

Wenn ich das Stück für Stück versuche in VBA umzusetzen komme ich immerhin bis zu der Stelle an der die Konkatenierung beginnt. Die Anweisung in VBA wäre dann:

Sheets("Übersicht").Cells(4, 2).FormulaLocal = "=ZÄHLENWENN(B11:B999;""MA1"")"

Immerhin ein Ergebnis von: 48

Danach bekomme ich außer ner Fehlermeldung nix mehr hin.
Kann hier jemand helfen?


Danke vorab.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel via VBA
15.04.2021 16:06:25
Rudi
Hallo,
die " musst du schon überall verdoppeln. z.B. hier: &" ("& --&gt &"" (""&
Warum schmeißt du nicht den Recorder an?
Gruß
Rudi
Recorder!!!! Stimmt....
15.04.2021 16:13:16
Marc
Ja stimm, warum eigentlich nicht?! Man kann sich das Leben auch schwer machen.
oder anders:
15.04.2021 16:46:53
Daniel
1. Formel funktionsfähig in von Hand (also wie gewohnt) in die Zelle schreiben.
2. Formeltext für das Makro im Direktfenster mit: ?Replace(Selection.Formula, """", """""")
gleich mit gedoppelten Anführungszeichen ausgeben lassen und ins Makro kopieren.
Vorteil gegenüber dem Recorder: man noch auswählen, welche Schreibweise man verwenden möchte (.Formula, .FormulaR1C1, .FormulaLocal, .FormulaR1C1Local)
Der Recorder zeichnet immer .FormulaR1C1 auf, das ist zwar für die Programmierung meistens das beste, aber wenn man die möglichkeit hat zu wählen, warum nicht?
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige