Appliquer une formule sur une plage via une macro

Hello Tous,

J'ai ce tableau

image

À la sélection d'une référence, le tableau se compète via des formules qui vont aller chercher les data correspondant à la ref sélectionnée dans une base de données selon la formule suivante =INDEX(INDIRECT("Tableau1["&B14&"]");EQUIV(Choix_Ref_1;Tableau1[Reference];0);0). Cette formule est étendue de C14 à C28.

Cette base de données est stockée dans un tableau (Tableau1) et est organisée en colonne, la première étant la ref et les suivantes intitulées comme les cellules du tableau ci-dessus dans la colonne B, d'ou l'usage du INDIRECT("Tableau1["&B14&"]"pour identifier la colonne ou chercher l'information à reporter.

J'aimerais pouvoir gérer cela via le code vba et non via des formules. J'ai essayé via l'enregistreur de macro, mais celui-ci me génère un code qui va inscrire dans la case la formule.

Sub Macro1()
'
' Macro1 Macro
'

'
    ActiveCell.FormulaR1C1 = _
        "=INDEX(INDIRECT(""Tableau1[""&RC[-1]&""]""),MATCH(Choix_Ref_1,Tableau1[Reference],0),0)"
    Range("C15").Select
End Sub

Je pense que le code devrait être du style suivant, mais je bloque sur la formalisation de l'index/equiv .

Sub macro()
Dim Rg As Range

Set Rg = Sheets("Home").Range("DataRef1")

For Each cell In Rg
    cell=
Next

End Sub

Je vous remercie par avance pour votre aide

Bastien

bonjour,

Il n'y a aucun rapport entre cette formule et le code VBA qu'on utiliserait à la place.

A+

Hello

Merci pour ta réponse

Du coup ça se gère comment?

Bonne journée.

Rechercher des sujets similaires à "appliquer formule plage via macro"