• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Matrixformule via VBA - verwijzing

Status
Niet open voor verdere reacties.

Joske2000

Terugkerende gebruiker
Lid geworden
19 sep 2006
Berichten
1.199
Ik heb de volgende VBA-code, die ervoor zorgt dat er een Matrix-formule in de kolommen I tot M wordt geplaatst.
Dit werkt perfect indien ik gegevens inbreng in 1 cel, indien ik echter bv gegevens plak in kolom "A", dan blijft hij steeds verwijzen naar de eerste rij !
Heeft iemand hiervoor een oplossing ?
Thanks

Joske

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("a:a")) Is Nothing Then Target.Offset(0, 8).FormulaArray = "=INDIRECT(""Verkoop!B""&LARGE(IF(Verkoop!C[-8]=R[0]C[-3],ROW(Verkoop!C[-8]),""""),1))"
    If Not Intersect(Target, Range("a:a")) Is Nothing Then Target.Offset(0, 9).FormulaArray = "=INDIRECT(""Verkoop!c""&LARGE(IF(Verkoop!C[-9]=R[0]C[-4],ROW(Verkoop!C[-9]),""""),1))"
    If Not Intersect(Target, Range("a:a")) Is Nothing Then Target.Offset(0, 10).FormulaArray = "=INDIRECT(""Verkoop!d""&LARGE(IF(Verkoop!C[-10]=R[0]C[-5],ROW(Verkoop!C[-10]),""""),1))"
    If Not Intersect(Target, Range("a:a")) Is Nothing Then Target.Offset(0, 11).FormulaArray = "=INDIRECT(""Verkoop!f""&LARGE(IF(Verkoop!C[-11]=R[0]C[-6],ROW(Verkoop!C[-11]),""""),1))"
    If Not Intersect(Target, Range("a:a")) Is Nothing Then Target.Offset(0, 12).FormulaArray = "=INDIRECT(""Verkoop!G""&LARGE(IF(Verkoop!C[-12]=R[0]C[-7],ROW(Verkoop!C[-12]),""""),1))"
End Sub
 
Welke formule moet er in I1 komen te staan ?
=INDIRECT(Verkoop!B & LARGE(IF(Verkoop!A1=F1,ROW(A1),""),1))
 
Hi Snb,

De volgende formule komt in I1 terecht :

Code:
=INDIRECT("Verkoop!B"&GROOTSTE(ALS(Verkoop!A:A=F1;RIJ(Verkoop!A:A);"");1))

Joske
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Row=1 and Target.Formula="" Then Target.Offset(, 8).FormulaArray = replace("=INDIRECT(#Verkoop!B#&LARGE(IF(Verkoop!$A:$A=$F1;RIJ(Verkoop!$A:$A);##);1))","#",chr(34))
  Target.Offset(, 8).resize(,5).autofill
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan