Bonjour à tous!
Voila je souhaite mettre sous macro le test logique suivant :
Pour chaque cellule de la plage (A7:A34).
Si dans la plage (A7:A34) une des valeurs est égale à une des valeurs de la plage (J7:J30) alors écrire dans la cellule offset (0,1) le calcul A
Ou si dans la plage (A7:A34) une des valeurs est égale à une des valeurs de la plage (K7:K30) alors écrire dans la cellule offset (0,1) le calcul B
Ou si dans la plage (A7:A34) une des valeurs est égale à une des valeurs de la plage (L7:L30) alors écrire dans la cellule offset (0,1) le calcul C
Ou si dans la plage (A7:A34) une des valeurs est égale à une des valeurs de la plage (M7:M30) alors écrire dans la cellule offset (0,1) le calcul D
Si aucune de ces 4 conditions n'est remplie alors écrire "erreur désignation"
J'ai fait beaucoup de test mais je n'arrive pas à faire fonctionner tout en même temps, voici le code et le fichier excel:
Merci!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Private Sub CommandButton2_Click() Dim cell As Range For Each cell In Range("A7:A34") If IsError(Application.VLookup(cell.Value, Range("J7:J30"), 1, False)) = False Then cell.Offset(0, 1) = FormulaR1C1 = "(R[0]C[2]*R[0]C[3]*R[0]C[4]+R[0]C[5]*R[0]C[2]*R2C[4])" If IsError(Application.VLookup(cell.Value, Range("K7:K30"), 1, False)) = False Then cell.Offset(0, 1) = FormulaR1C1 = "(R[0]C[2]*R[0]C[3])" If IsError(Application.VLookup(cell.Value, Range("L7:L30"), 1, False)) = False Then cell.Offset(0, 1) = FormulaR1C1 = "(R[0]C[2]*R[0]C[4])" If IsError(Application.VLookup(cell.Value, Range("M7:M30"), 1, False)) = False Then cell.Offset(0, 1) = FormulaR1C1 = "(R[0]C[3]*R[0]C[3])" Else cell.Offset(0, 1) = "Erreur désignation" End If Next cell End Sub
Partager