Microsoft Excel

Herbers Excel/VBA-Archiv

Matrixformel via VBA runterkopieren | Herbers Excel-Forum


Betrifft: Matrixformel via VBA runterkopieren von: Jonathan
Geschrieben am: 18.12.2009 15:44:02

Hallo liebe Experten,

ich stehe mal wieder vor einem Problem.

In einer Tabelle stehen in der Spalte A Sachnummern. Diesen Sachnummern werden in den Spalten B-D unterschiedliche Werte zugewiesen.
Das ganze funktioniert auch wunderbar über folgende Matrixformel:

{=WENN(ZÄHLENWENN('S-Nummern'!$A:$A;$A4)>=SPALTE(A1);INDEX('S-Nummern'!$B$1:$B$100; KKLEINSTE(WENN('S-Nummern'!$A$1:$A$100=$A4;ZEILE('S-Nummern'!$A$1:$A$100));SPALTE(A1)));"") }

Diese Formel wird nun manuell bis zur letzten befüllten Zelle in Spalte A runterkopiert.

Wenn ich diese Formel in ein Makro schreibe und nach unten kopieren lasse, so schreibt er mir in jede Zelle in Spalte B (bis zum letzten Wert in Spalte A) die gleiche Formel, d.h. ohne jeweils die Zellbezüge anzupassen.
Was mache ich hierbei denn falsch?

Der Code in VBA lautet:

Range("B4:B" & Cells(Rows.Count, "A").End(xlUp).Row).FormulaArray = _
"=IF(COUNTIF(Picklist!C1,RC1)>=COLUMN(R[-3]C[-1]),INDEX(Picklist!R1C2:R100C2,SMALL(IF(Picklist!R1C1:R100C1=RC1,ROW(Picklist!R1C1:R100C1)),COLUMN(R[-3]C[-1]))),"""")"

Vielen Dank schon mal für eure Hilfe.

Gruß
Jonathan

  

Betrifft: AW: Matrixformel via VBA runterkopieren von: Josef Ehrensberger
Geschrieben am: 18.12.2009 15:50:01

Hallo Jonathan,

das geht am besten mit .AutoFill.

Jetzt mal "Freihändig" hingeschrieben!

Range("B4").FormulaArray = _
"=IF(COUNTIF(Picklist!C1,RC1)>=COLUMN(R[-3]C[-1]),INDEX(Picklist!R1C2:R100C2,SMALL(IF(Picklist! _
R1C1:R100C1=RC1,ROW(Picklist!R1C1:R100C1)),COLUMN(R[-3]C[-1]))),"""")"

Range("B4:B" & Cells(Rows.Count, "A").End(xlUp).Row).AutoFill

Gruß Sepp



  

Betrifft: AW: Matrixformel via VBA runterkopieren von: Jonathan
Geschrieben am: 18.12.2009 15:55:26

Hallo Sepp,

vielen Dank für deine Antwort.
Mit .AutoFill gab es leider eine Fehlermeldung. Ich habe es dann in .FillDown umgeändert. Jetzt funktioniert es.

Gruß
Jonathan


  

Betrifft: .FillDown - .AutoFill > zuviel Punsch, sorry o.T. von: Josef Ehrensberger
Geschrieben am: 18.12.2009 15:56:59

Gruß Sepp



Beiträge aus den Excel-Beispielen zum Thema "Matrixformel via VBA runterkopieren"