Bonjour, une nouvelle fois je viens solliciter votre aide

Voici une formule index equiv que j'ai dans un tableau en feuille1 de mon classeur :

=INDEX(Feuil2!$L$6:$N$16;EQUIV(Feuil1!M2;Feuil2!$L$6:$L$16;0);2) en colonne S

et la même formule avec l'enregistreur de macro :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 ActiveCell.FormulaR1C1 = _
        "=INDEX(Feuil2!R6C12:R16C14,MATCH(Feuil1!RC[-6],Feuil2!R6C12:R16C12,0),2)"
puis je tire cette formule jusqu'à la dernière ligne non vide mon tableau en feuille 1 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Sheets("Feuil1").Activate
Cells(2, 19).Select
 
'    ActiveCell.FormulaR1C1 = _
'        "=INDEX(Feuil2!R6C12:R16C14,MATCH(Feuil1!RC[-6],Feuil2!R6C12:R16C12,0),2)" 'formule enregistrée avec l'enregistreur de macro
'    Range("S2").Select
'    Selection.AutoFill Destination:=Range("S2:S3563") 'copie colle la formule jusqu'à la dernière ligne non vide du tableau
'    Range("S2:S3563").Select
Mon problème réside dans le fait que : ma plage Feuil2!R6C12:R16C14 ou Feuil2!$L$6:$N$16 et ma colonne Feuil2!R6C12:R16C12 ou Feuil2!$L$6:$L$16 doivent être des plages dynamiques.

j'ai donc écris le code suivant avec l'aide de certains d'entre vous et mes très modestes connaissances :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub test()
 
'
' Macro4 Macro récuperer les montants du tableau croisé dynamique en feuille 2 pour les injecter dans la feuille 1
'=INDEX(Feuil2!$L$6:$N$16;EQUIV(Feuil1!M2;Feuil2!$L$6:$L$16;0);2)
 
Dim Dernlign As Long
DernLigne = Range("A" & Rows.Count).End(xlUp).Row 'jusqu'à la dernière ligne non vide de la feuille 1
 
Dim DernLigne1 As Long
DernLigne1 = Range("A" & Rows.Count).End(xlUp).Row 'jusqu'à la dernière ligne non vide de la feuille 2
 
Dim maPlageDynamiq As Range
Dim DernLigneDynamiq As Long, DernColonneDynamiq As Integer
    'dernière ligne de la colonne L de la feuille 2
DernLigneDynamiq = Sheets("Feuil2").Range("L" & Rows.Count).End(xlUp).Row - 1  'ne selectionne pas la ligne total général ni les entêtes
    'dernière colonne de la ligne 6 de la feuille 2
DernColonneDynamiq = Sheets("Feuil2").Cells(6, Cells.Columns.Count).End(xlToLeft).Column  'première colonne du tableau croisé dynamique en feuille 2
Set maPlageDynamiq = Sheets("Feuil2").Range(Cells(6, 12), Cells(DernLigneDynamiq, DernColonneDynamiq)) 'plage dynamique de référence pour la fonction index/match
mais je suis malgré beaucoup d'efforts incapable d'écrire la suite du code où pour ma formule index/equiv citée plus haut :

maPlagedynamiq doit remplacer Feuil2!R6C12:R16C14.
DerColonneDynamiq doit remplacer Feuil2!R6C12:R16C12.
et recopier la formule sur chaque ligne jusqu'à la dernière ligne non vide de la feuille 1 en colonne S à partir de S2

si une bonne âme pouvait m'aider ce serait super sympa.

Merci à tous.