INDEX EQUIV en VBA

Bonsoir,

J'ai en fait deux tableaux et je n'arrive pas à faire un INDEX ÉQUIV. Les colonnes "Employé" et "Nombre" sont les valeurs voulues et la colonne "Série" est prise comme référence. J'obtiens toujours l'erreur 1004 lorsque j’exécute la macro ...Sauriez-vous où est la problématique?

Olivia

ActiveSheet.ListObjects("tab_planif").ListColumns("Employé").DataBodyRange.FormulaR1C1 = "=INDEX(tab_donnees[Employé]; EQUIV([@[Série]];tab_donnees[Série];0)) "
ActiveSheet.ListObjects("tab_planif").ListColumns("Nombre").DataBodyRange.FormulaR1C1 = "=INDEX(tab_donnees[Nombre]; EQUIV([@[Série]];tab_donnees[Série];0)) "
72index-equiv.xlsm (17.11 Ko)

Bonsoir,

Ceci serait mieux et plus simple

    With Sheets("planification").ListObjects(1)
        .ListColumns("Employé").DataBodyRange.FormulaR1C1 = "=VLOOKUP([@Série],tab_donnees[#All],2,FALSE)"
        .ListColumns("Nombre").DataBodyRange.FormulaR1C1 = "=VLOOKUP([@Série],tab_donnees[#All],3,FALSE)"
    End With

Bonsoir,

Ceci serait mieux et plus simple

    With Sheets("planification").ListObjects(1)
        .ListColumns("Employé").DataBodyRange.FormulaR1C1 = "=VLOOKUP([@Série],tab_donnees[#All],2,FALSE)"
        .ListColumns("Nombre").DataBodyRange.FormulaR1C1 = "=VLOOKUP([@Série],tab_donnees[#All],3,FALSE)"
    End With

Bonsoir,

Merci! Cela fonctionne . Cependant, n'est-il pas préférable de passer par un INDEX ÉQUIV, puisque la rechercheV est limitée à une "recherche vers la droite"? La colonne "Série" n'est pas toujours la première colonne à partir de la gauche.

Cordialement,

Olivia

Bonsoir,

Merci! Cela fonctionne . Cependant, n'est-il pas préférable de passer par un INDEX ÉQUIV, puisque la rechercheV est limitée à une "recherche vers la droite"? La colonne "Série" n'est pas toujours la première colonne à partir de la gauche.

Cordialement,

Olivia

Bonjour,

ceci alors

Sub index_equiv()
With Sheets("planification").ListObjects(1)
   .ListColumns("Employé").DataBodyRange.FormulaR1C1 = "=INDEX(tab_donnees[Employé], match([@[Série]],tab_donnees[Série],0))"
   .ListColumns("Nombre").DataBodyRange.FormulaR1C1 = "=INDEX(tab_donnees[Nombre], match([@[Série]],tab_donnees[Série],0))"
End With
End Sub

P.

Bonsoir,

Merci! Cela fonctionne . Cependant, n'est-il pas préférable de passer par un INDEX ÉQUIV, puisque la rechercheV est limitée à une "recherche vers la droite"? La colonne "Série" n'est pas toujours la première colonne à partir de la gauche.

Cordialement,

Olivia

Bonjour,

ceci alors

Sub index_equiv()
With Sheets("planification").ListObjects(1)
   .ListColumns("Employé").DataBodyRange.FormulaR1C1 = "=INDEX(tab_donnees[Employé], match([@[Série]],tab_donnees[Série],0))"
   .ListColumns("Nombre").DataBodyRange.FormulaR1C1 = "=INDEX(tab_donnees[Nombre], match([@[Série]],tab_donnees[Série],0))"
End With
End Sub

P.

Merci beaucoup!!

Rechercher des sujets similaires à "index equiv vba"