Formule imbriquée sous VBA

Signaler
Messages postés
10
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
25 mai 2018
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour à tous,

J'ai un soucis de syntaxe avec des formules imbriquées sous VBA,

IfNa
If Range("F25").Value = "J" Then
Vlookup (Range("B25"),Base_M.O,2,False)*Range("G25"),(Vlookup(Range("B25"),Base_M.O,4,FALSE))*Range("G25")),Range("H25").Value)
End With

Si quelqu'un peut m'aider à trouver la bonne syntaxe svp ?

Cordialement,
DVBA

2 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Bonjour,

Pas sûr de bien comprendre ce que tu veux faire dans SelectionChange() ???
La macro va être appelée à chaque fois que tu cliques une cellule, n'importe laquelle...

Peut-être ceci?
    If Range("F25") = "J" Then
Range("H25") = Application.WorksheetFunction.VLookup( _
Worksheets("Fiche_REX_P").Range("B25"), _
Worksheets("Base_M.O").Range("B:B"), 1, False)
Else
Range("H25") = Application.WorksheetFunction.VLookup( _
Worksheets("Fiche_REX_P").Range("B25"), _
Worksheets("Base_M.O").Range("D:D"), 1, False)
End If

Messages postés
10
Date d'inscription
mercredi 14 mars 2018
Statut
Membre
Dernière intervention
25 mai 2018

Je reviens pour apporter plus de précisions, j'aimerai traduire la formule qui suit en VBA :

=SI.NON.DISP(SI(F25 ="J";(RECHERCHEV(B25;Base_M.O;2;FAUX)*G25);(RECHERCHEV(B25;Base_M.O;4;FAUX))*G25*D25);H25)

J'ai écris :
Private Sub Test_SelectionChange(ByVal Target As Range)
IfNa
If Range("F25").Value = "J" Then
VLookup Worksheets("Fiche_REX_P").Range("B25"), Worksheets("Base_M.O"), Columns("B:B").Select, False
Else
VLookup Worksheets("Fiche_REX_P").Range("B25"), Worksheets("Base_M.O"), Columns("D:D").Select, False
End If
Worksheets("Fiche_REX_P").Range("H25").Value
End With
End Sub

Mais cela ne fonctionne pas, quelqu'un saurait quoi changer dans mon code svp?

Cordialement,
DVBA