Fonction EQUIV/INDEX en VBA

Bonjour,

Je vous explique mon problème : Actuellement j'utilise la fonction EQUIV/INDEX directement dans les cellules de la colonne F. Mais aujourd'hui je souhaiterai qu'en fonction du contenu d'une cellule (ici la colonne B) il y est soit un mot qui s'affiche soit la fonction EQUIV/INDEX. Par exemple si la cellule B2 ne contient pas le mot "Mouvement", la fonction EQUIV/INDEX devra ce faire dans la cellule F2, idem pour B3/F3 etc ...

Voici la fonction utilisé dans la cellule F2 : =INDEX(INTERVENANTS!A:A;EQUIV(B2;INTERVENANTS!A:A;0)+2)

Et voice le programme que j'ai commencé à faire :

For ligne = 1 To ActiveSheet().UsedRange.Rows.Count

If Range("B" & ligne) = "Mouvement" Then

Range("F" & ligne) = "Magasin"

Else

Merci d'avance,

Salut Rémy,

Un fichier exemple aiderait certainement à mieux comprendre.

Pourquoi veux-tu vraiment le faire par macro ? Regarde si la formule incrémentée dans la colonne F ne convient pas ainsi ?

Et si tu veux vraiment le faire par macro, dis-moi déjà si je suis parti dans la bonne direction.

Cordialement.

485classeur2.xlsx (9.01 Ko)

Bonjour,

je n'ai pas compris quel était la colonne recherche et la colonne valeur retournée,

en espérant que vous pourrai adapter,

Sub Macro1()
 Set sh1 = Sheets("INTERVENANTS")
   With sh1
     For ligne = 1 To .UsedRange.Rows.Count

      If .Range("B" & ligne) = "Mouvement" Then

        If Not IsError(Application.Match(.Range("B" & ligne), .Range("A:A"), 0)) Then
           n = Application.Match(.Range("B" & ligne), .Range("A:A"), 0)
           .Range("F" & ligne) = .Range("A" & n)
        Else

        End If

      End If

    Next
  End With
End Sub

Merci d'avoir essayer de m'aider mais j'ai réussi à faire ce que je souhaité merci quand même

Salut,

Ca aurait été sympa de placer ta solution sur ton fil Déjà on aurait pu apprendre quelque chose et secondement on aurait pu voir si notre intervention t'avait quand même été d'une certaine utilité

Amicalement.

Excuses moi,

Voici ce que j'ai fais tout simplement :

    For ligne = 2 To ActiveSheet().UsedRange.Rows.Count
        If Range("B" & ligne) = "Mouvement" Then
            Range("F" & ligne) = "Magasin"
        Else
            Range("F" & ligne).FormulaR1C1 = _
                "=INDEX(INTERVENANTS!C[-5],MATCH(R[0]C[-4],INTERVENANTS!C[-5],0)+2)"

    End If
Next
Rechercher des sujets similaires à "fonction equiv index vba"