XL 2016 problème de renvoi resultat formule recherchev en vba

dav30029

XLDnaute Nouveau
Bonjour,

je souhaiterais avoir en vba l'équivalent de la recherchev.
En effet, j'ai une feuille qui s'appelle recherche et le résultat qui doit m'être renvoyé dans la feuille "donnée" se trouve dans uniquement la colonne A de la feuille "recherche".
voici la formule :

=SI(ESTERREUR(RECHERCHEV(A11;recherche!$A:$A;1;0));"";RECHERCHEV(donnees!A11;recherche!$A:$A;1;0))& ";"

si demain, j'ai plus de lignes, ça ne fonctionne plus d'où l’intérêt de vba pour boucler.
Pas de soucis pour boucler les lignes.

exemple code pour ligne11 qui ne me prend pas en compte la plage fixe de la colonne A

ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[-21],recherche!C[-28],1,0)),"""",VLOOKUP(RC[-21],recherche!C[-28],1,0))& "";"""
ActiveCell.Offset(0, 1).Select


ci-joint un exemple.

Je vous remercie pour votre aide
 

Pièces jointes

  • explication.xlsm
    52.4 KB · Affichages: 9
Solution
Bonjour,
VB:
Sub Set_Formule()
    lr = Cells(Rows.Count, "A").End(xlUp).Row
    If lr > 1 Then
        Range("H2:H" & lr).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-7],recherche!C1,1,0)),"""",VLOOKUP(donnees!RC[-7],recherche!C1,1,0))& "";"""
    End If
End Sub

fanch55

XLDnaute Barbatruc
Bonjour,
VB:
Sub Set_Formule()
    lr = Cells(Rows.Count, "A").End(xlUp).Row
    If lr > 1 Then
        Range("H2:H" & lr).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-7],recherche!C1,1,0)),"""",VLOOKUP(donnees!RC[-7],recherche!C1,1,0))& "";"""
    End If
End Sub
 

Discussions similaires