Ajout de formule array par VBA

Bonjour Encore!!

Merci de m'aider a devenir meilleur...

Ce code fonctionne, SAUF que!

J'aurais besoin que la formule dans la colone B aient l'air de ceci pour que l'ensemble fonctionne, ce qui ne se produit pas presentement...

=IFERROR(INDEX(sheet1!D$2:D$10000, MATCH(0,COUNTIF($B$2:B2, sheet1!D$2:D$10000), 0)),0)

=IFERROR(INDEX(sheet1!D$2:D$10000, MATCH(0,COUNTIF($B$2:B3, sheet1!D$2:D$10000), 0)),0)

=IFERROR(INDEX(sheet1!D$2:D$10000, MATCH(0,COUNTIF($B$2:B4, sheet1!D$2:D$10000), 0)),0)

Ca ne fait que copier a l'identique la formule inscrite dans le code soit

=IFERROR(INDEX(sheet1!D$2:D$10000, MATCH(0,COUNTIF($B$2:B2, sheet1!D$2:D$10000), 0)),0)

     With wkb.Worksheets("ERROR")

.Range("B3:B300").FormulaArray = "=IFERROR(INDEX('sheet1'!D$2:D$10000, MATCH(0,COUNTIF($B$2:B2, 'sheet1'!D$2:D$10000), 0)),0)"
    End With

manuellement, comme je vais jusqua 300 lignes, ca serait un peu intense a faire...

Merci de vos lumieres, cela depasse grandement mes competances...

Bien a vous,

Bonsoir,

une fois la première formule inscrite par VBA vous pouvez utiliser la fonction VBA qui "remplace" la poignée de recopie automatique des cellules :
Selection.AutoFill Destination:=Range("A1:A24"), Type:=xlFillDefault
où Selection est le Range de la cellule de la première formule et A1:A24 est la plage de recopie de cette formule.

@ bientôt

LouReeD

Pardonnez mon ignorance... j'ai tenter par moi meme quelques trucs mais je n'arrive a rien.

Est-ce sensé donner ce resultat?

        With wkb.Worksheets("ERROR")

.Range("B3:B300").FormulaArray = "=IFERROR(INDEX('sheet1'!D$2:D$10000, MATCH(0,COUNTIF($B$2:B2, 'sheet1'!D$2:D$10000), 0)),0)"
.Selection("B3:B300").AutoFill Destination:=Range("B3:B300"), Type:=xlFillDefault

End With

en 2 fois !!!

la premiere fois, vous le faitez uniquement pour B3, donc pas toute la plage B3:B300, puis autofill à partir de B3 pour toute la plage B3:B300

Je crois comprendre le principe, mais ca ne fonctionne toujours pas...

Merci de votre patience... mine de rien, j'ai espoir!!

.Range("B3").FormulaArray = "=IFERROR(INDEX('sheet1'!D$2:D$10000, MATCH(0,COUNTIF($B$2:B2, 'sheet1'!D$2:D$10000), 0)),0)"
.Selection("B3:B300").AutoFill Destination:=Range("B3:B300"), Type:=xlFillDefault

Bonsoir,

un dernier essai ?

    Range("B3").FormulaR1C1 = "=IF(R[-1]C[-1]="""",""LouReeD"",""et ben non c'est pas lui !"")"
    Range("B3").AutoFill Destination:=Range("B3:B27"), Type:=xlFillDefault

@ bientôt

LouReeD

bonsoir,

ceci fonctionne chez moi,

.Range("B3").FormulaArray = "=IFERROR(INDEX('sheet1'!D$2:D$10000, MATCH(0,COUNTIF($B$2:B2, 'sheet1'!D$2:D$10000), 0)),0)"
.Range("B3").AutoFill Destination:=Range("B3:B300"), Type:=xlFillDefault

Bonsoir,

chez moi aussi ça marche, tout comme mon code sauf que je n'ai pas fait l'effort de mettre la bonne formule ni la bonne plage ! Pauvre de moi !

@ bientôt

LouReeD

Rechercher des sujets similaires à "ajout formule array vba"