Formule vers VBA

Bonjour !

J'ai du mal à convertir cette formule en language VBA:

=SIERREUR(SI(RECHERCHEV(BG2;$BE$2:$BE$100;1;0)=BG2;BG2;"pas ok");"")

Grace a ce code je verifie si au moin une case des colonnes AB ou AQ est remplie et si c'est le cas je met la formule dans la case de la colonne BJ

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not (Intersect(Target, Range("AB:AQ")) Is Nothing) Then
        'Modification dans la zone BDD
        Application.EnableEvents = False
        If Range("AB" & Target.Row).Value <> "" Or Range("AQ" & Target.Row).Value <> "" Then
            Range("BJ" & Target.Row).FormulaR1C1 = "=IF(RC[-2]<>RC[-1],"""","" = "")"
        Else
            Range("BJ" & Target.Row).FormulaR1C1 = ""
        End If

         Application.EnableEvents = True
    End If
    Debug.Print Range("D5").End(xlDown).Row
End Sub

Donc ça remplacera la formule : "=IF(RC[-2]<>RC[-1],"""","" = "")" ( qui était un test)

Merci

NI3

Bonjour,

Je ne comprends pas vraiment ta formule. Essaye comme celle-ci pour insérer la formule dans A1 par exemple :

Range("A1").FormulaLocal = "=SIERREUR(RECHERCHEV(BG2;$BE$2:$BE$100;1;0);""pas ok"")"

Adapte-la à ta situation. En tout cas, je ne pense pas que tu aies besoin de combiner SIERREUR et SI dans la situation que tu nous

a décrite. A mon avis SIERREUR suffit pour ramener le message d'erreur si la recherche échoue. FormulaLocal permet de renseigner une formule en VBA dans la langue locale.

Rechercher des sujets similaires à "formule vba"