Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1104to1108
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formel durch Makro in Zelle schreiben

Formel durch Makro in Zelle schreiben
Jakob
Hallo,
ich habe mit dem Makrorecorder folgenden Code aufgezeichnet um eine Formel in eine Zelle zu schreiben.
Range("G11").FormulaR1C1 = _
"=IF((IF(ISERROR(MATCH(R6C7&"".""&R17C3,KunMat,0)>=0),"""",IF(MATCH(R6C7&"".""&R17C3,KunMat,0)>=0,IF(VLOOKUP(R6C7&"".""&R17C3,VsArt,2,)=0,"""",VLOOKUP(R6C7&"".""&R17C3,VsArt,2,)))))=""luft"",""x"","""")"
~f~
Das funktioniert auch problemlos. Jetzt musste ich aber die Formel um eine "Oder"-Abfrage erweitern. Im Excel funktioniert es auch problemlos. Nur beim Schreiben der Formel mit VBA gibt es jetzt einen Laufzeitfehler. Liegt das jetzt daran, daß die Formel zu lang ist? Muß ich im VBA-Code vielleicht einen Zeilenumbruch einbauen? Wenn ja, wie müßte dann die Formel aussehen?
~f~
Range("G11").FormulaR1C1 = _
"=IF(or((IF(ISERROR(MATCH(R6C7&"".""&R17C3,KunMat,0)>=0),"""",IF(MATCH(R6C7&"".""&R17C3,KunMat,0)>=0,IF(VLOOKUP(R6C7&"".""&R17C3,VsArt,2,)=0,"""",VLOOKUP(R6C7&"".""&R17C3,VsArt,2,)))))=""luft"",(IF(ISERROR(MATCH(R6C7&"".""&R17C3,KunMat,0)>=0),"""",IF(MATCH(R6C7&"".""&R17C3,KunMat,0)>=0,IF(VLOOKUP(R6C7&"".""&R17C3,VsArt,2,)=0,"""",VLOOKUP(R6C7&"".""&R17C3,VsArt,2,)))))=""lkw""),""x"",""""))"
Vielen Dank für Eure Hilfe.
Gruß,
Jakob

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Formel durch Makro in Zelle schreiben
30.09.2009 22:37:04
Daniel
Hi
ja, die Formel ist zu lang.
die .FormulaR1C1 - Funktion funktioniert nur bis max 256 Zeichen.
du musst die Formel entsprechend einkürzen.
du könntest z.B. den immer wiederkehrenden Begriff: R6C7&"".""&R17C3 als Namen festlegen und in der Formel verwenden.
weitere Kürzungsmöglichkeit:
hier ist der Fett markierte Zeil überflüssig:
ISERROR(MATCH(R6C7&"".""&R17C3,KunMat,0)>=0)

oder lässt sich so ersetzen, was auch wieder ein paar Zeichen spart.
CountIf(KunMat,R6C7&"".""&R17C3)=0
sollte die Formel immer noch zu lang sein müssten immer wiederkehrende Formelbestandteile in _ eine seperate Hilfspalte ausgelagert werden. Gruß, Daniel
Anzeige

400 Forumthreads zu ähnlichen Themen


Hallo zusammen,
wie bekomme ich es hin, in eine Zelle "7 a" (7 Leerzeichen a) zu schreiben? Excel macht mir dann immer 7:00 AM daraus oder 0,29...
Danke
Anzeige

Guten Tag zusammen!
Bitte helft mir bei folgendem Problem:
In einer Userform habe ich eine ganze Reihe Textboxen, in die zum größten Teil Zahlen eingegeben werden.
Nun ist ja bekannt, dass beim Schreiben in Zellen der Inhalt der Textboxen als Text interpretiert wird. Mit der Anweisu...

Guten Tag zusammen!
Bitte helft mir bei folgendem Problem:
In einer Userform habe ich eine ganze Reihe Textboxen, in die zum größten Teil Zahlen eingegeben werden.
Nun ist ja bekannt, dass beim Schreiben in Zellen der Inhalt der Textboxen als Text interpretiert wird. Mit der Anweisu...
Anzeige

Halli Hallo,
ich bin ziemlicher Neuling in VBA. Daher würde ich euch bitten mir bei meiner Fragestellung zu helfen und zwar wie folgt: Ich möchte aus einer Tabelle aller Zellen kopieren, bis der Wert einer Zelle 0 annimmt. Diesen bestimten Bereich möchte ich in einer neuen Datei abspeichern...

hallo,
ich muß eine liste erstellen. die werte unten will ich nicht immer eingeben müssen, sondern nur dort wo ein wert stehen soll ein x machen. excel soll mir dann für jedes x den wert aus der zeile 2 der gleichen spalte eintragen. mache ich in eine zelle 2 x, dann muß der wert auch 2 mal...

Hi Leute
Ich habe hier diesen netten VBA Code geschrieben und leider wie solls auch anders sein kommt dauernd eine Fehlermeldung :)
CODE:
rowbeforeinteger = 2
Dim text As String
text = "=IF(" & epsoldcolumn & rowbeforeinteger & "=""x"";1;0)+IF(" & emailsoldco...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige