Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Richtige Trennung einer Formel im VBA-Code





Frage

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 1 von rainberg

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

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

Hallo son_quatsch,

hast Du Deinen Quatsch auch getestet? :-))

Gruß
Rainer

Antwort 4 von Ron11

hallo,

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

Gruß Ron

Antwort 5 von son_quatsch

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

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

Gruss Rolf

Antwort 7 von son_quatsch

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

hi all

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

gruss nighty

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: