online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Ron11 vom 15.08.2020, 10:17 Options

Richtige Trennung einer Formel im VBA-Code

Hallo VBA-*Z*s,

eine Frage an euch. Ich lasse per VBA eine ellen lange Wenn-Formel erstellen, die so aussieht: (nur ein Teil davon)

ActiveCell.FormulaR1C1 = _
"=IF(RC[1]<>"""",1,0)+IF(RC[3]<>"""",1,0)+IF(RC[5]<>"""",1,0)+IF(RC[7]<>"""",1,0)+IF(RC[9]<>"""",1,0)+IF(RC[11]<>"""",1,0)+IF(RC[13]<>"""",1,0)+IF(RC[15]<>"""",1,0)+IF(RC[17]<>"""",1,0)+IF(RC[19]<>"""",1,0)"

Im VBA-Code geht diese nun ja ewigs weit nach rechts. Wie kann ich die richtig trennen, dass diese über z.b. 6 Codezeilen geschrieben wird wie z.b. so:

ActiveCell.FormulaR1C1 = _
"=IF(RC[1]<>"""",1,0)+IF(RC[3]<>"""",1,0) _
+IF(RC[5]<>"""",1,0))+IF(RC[7]<>"""",1,0) _
+IF(RC[9]<>"""",1,0))+IF(RC[11]<>"""",1,0) _
+IF(RC[13]<>"""",1,0)+IF(RC[15]<>"""",1,0) _
+IF(RC[17]<>"""",1,0)+IF(RC[19]<>"""",1,0)"

So sah meine Version aus welche aber zu Fehlermeldungen über den Debugger führte.

Wie trennt ich diese richtig?

Danke für eure Hilfe.

Gruß Ron


Antwort schreiben

Antwort 1 von rainberg vom 15.08.2020, 12:57 Options

Hallo Ron,

soviel ich weiß, kann innerhalb einer Berechnung keine Trennung durchgeführt werden.

Für Deine lange Formel gibt es bestimmt einen Ersatz, allerdings muss man den Hintergrund derselben ganauer kennen.

Gruß
Rainer

Antwort 2 von son_quatsch vom 15.08.2020, 13:16 Options

Das ganze ist doch bloß Text - und Text kann in VB (wie in vielen anderen Sprachen) nicht über Umbrüche zugewiesen werden - du müsstest also mehrere Textfolgen draus machen:

ActiveCell.FormulaR1C1 = _
"=IF(RC[1]<>"""",1,0)+IF(RC[3]<>"""",1,0)" + _
"+IF(RC[5]<>"""",1,0))+IF(RC[7]<>"""",1,0)" + _
"+IF(RC[9]<>"""",1,0))+IF(RC[11]<>"""",1,0)" + _
"+IF(RC[13]<>"""",1,0)+IF(RC[15]<>"""",1,0)" + _
"+IF(RC[17]<>"""",1,0)+IF(RC[19]<>"""",1,0)"

Antwort 3 von rainberg vom 15.08.2020, 14:34 Options

Hallo son_quatsch,

hast Du Deinen Quatsch auch getestet? :-))

Gruß
Rainer

Antwort 4 von Ron11 vom 18.08.2020, 13:01 Options

hallo,

danke für eure Hilfe. Ich habe den dritten (ein ganz anderen) Weg gewählt.

Gruß Ron

Antwort 5 von son_quatsch vom 18.08.2020, 13:13 Options

Zitat:
hast Du Deinen Quatsch auch getestet?
Während und nach dem Tippen nicht. Jetzt ja - und klappt auch. Sollte mir dein Post etwa sagen, dass dem nicht so ist? Wenn ja, warum? Wie ich es beschrieben habe: es ist eine einfache Zuweisung von Text - und Text kann man immer aufteilen aber nie über mehrere Zeilen hinweg schreiben.

Antwort 6 von meinTipp vom 18.08.2020, 13:17 Options

Ja, aber Strings werden nicht mit + sondern mit & zusammengefügt (verkettet).

Gruss Rolf

Antwort 7 von son_quatsch vom 18.08.2020, 13:23 Options

Du hast recht, das habe ich in der Tat übersehen :)
Bleibt die Frage, warum es trotzdem geklappt hat - denn in der Tabelle findet sich wie gewünscht dann in der aktiven Zelle die Formel

=WENN(C4<>"";1;0)+WENN(E4<>"";1;0)+WENN(G4<>"";1;0)+WENN(I4<>"";1;0)+WENN(K4<>"";1;0)+WENN(M4<>"";1;0)+WENN(O4<>"";1;0)+WENN(Q4<>"";1;0)+WENN(S4<>"";1;0)+WENN(U4<>"";1;0)

Antwort 8 von nighty vom 18.08.2020, 14:22 Options

hi all

es geht natuerlich beides + wie & mir ist es unverstaendlich wie man darueber streiten kann,da es sich leicht ausprobieren liesse :-))

gruss nighty

Ähnliche Themen

Fehler im VBA-Code
emap  22.02.2007 - 49 Hits - 6 Antworten

Laufzeitfehler im VBA Code
Meikel  26.06.2007 - 76 Hits - 1 Antwort

Curser in Richtige Spalte springen. VBA
bokap1975  28.02.2008 - 33 Hits - 9 Antworten

Prozent - richtige Formel ?
Meikel  17.04.2008 - 29 Hits - 3 Antworten

VBA-Code funktioniert nicht mehr
jojo5  03.07.2008 - 73 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026