Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Arrayformel per VBA in Zelle setzen

Arrayformel per VBA in Zelle setzen
28.04.2009 16:21:18
UweD
Hallo
per VBA schreibe ich einige Formeln in ein Tabellenblatt.
Ich verwende die .FormulaR1C1 Methode, da ich dann einen ganzen Bereich direkt setzen kann.
so mache ich das bei "Normalen" Formeln


    LR = TB2.Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
    TB2.Range("C2:F" & LR).FormulaR1C1 = _
        "=IF(COUNTIF('Rückstand Bandbelegung'!C1,Auswertung!RC1)=0,"""",COUNTIFS('Rückstand Bandbelegung'!C1,Auswertung!RC1,'Rückstand Bandbelegung'!C3,""=""&R1C))"
    TB2.Range("B2:B" & LR).FormulaArray = _


Sieht dann so aus:
 
 C
590
Formeln der Tabelle
C59 : =WENN(ZÄHLENWENN('Rückstand Bandbelegung'!$A:$A;Auswertung!$A59)=0;"";ZÄHLENWENNS('Rückstand Bandbelegung'!$A:$A;Auswertung!$A59;'Rückstand Bandbelegung'!$C:$C;"="&C$1))
 

Bei Arrayformeln mach ich es so: (mit Recorder aufgenommen und nachbearbeitet)


    LR = TB2.Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
    TB2.Range("B2:B" & LR).FormulaArray = _
        "=SUM(('Rückstand Bandbelegung'!C1=Auswertung!RC1)*('Rückstand Bandbelegung'!C7<>""""))"
    TB2.Range("C2:F" & LR).FormulaR1C1 = _


dann kommt das raus:
 
 AB
5914.04.20090
Formeln der Tabelle
B59 : {=SUMME(('Rückstand Bandbelegung'!C1=Auswertung!RC1)*('Rückstand Bandbelegung'!C7<>""))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 

soll aber so sein:
 
 AB
5914.04.20090
Formeln der Tabelle
B59 : {=SUMME(('Rückstand Bandbelegung'!$A:$A=Auswertung!$A59)*('Rückstand Bandbelegung'!$G:$G<>""))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 

Wer kann mir helfen?
Grauß UweD

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arrayformel per VBA in Zelle setzen
28.04.2009 16:44:39
Tino
Hallo,
bei mir spuckt der Rekorder diese Zeile aus.

"=SUM(('Rückstand Bandbelegung'!C1=Auswertung!R[58]C1)*('Rückstand Bandbelegung'!C7""""))"


Gruß Tino

versuche es mal mit dieser
28.04.2009 16:55:00
Tino
Hallo,

"=SUM(('Rückstand Bandbelegung'!C1=Auswertung!R[0]C1)*('Rückstand Bandbelegung'!C7""""))"


Hruß Tino

AW: Arrayformel per VBA in Zelle setzen
28.04.2009 19:53:13
Uduuh
Hallo,
soviel ich weiß, kannst du FormulaArrays nicht in einem Rutsch schreiben. Das musst du per Schleife machen.
Gruß aus’m Pott
Udo

Anzeige
AW: bei mir funktioniert das eigentlich
28.04.2009 22:22:33
Daniel
wenn ich deinen Code bei mir in ein Makro einfüge, dann kommt eigentlich das von dir gewünschte Ergebnis raus. Passt eigentlich soweit.
Ansonsten probiermal die Formel in der A1-Schreibweise einzusetzen.
du kannst die Formeln eigentlich schon im Zellblock einfügen, bei der A1-Schreibweise muss man halt darauf achten, daß die Formel für die erste Zelle des Blocks geschrieben ist.
ansonsten lad mal deine Datei mit dem Fehler hoch, Ursachen kanns vielen geben.
Gruß, Daniel

385 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