Plusieurs SI dans une macro excel

Résolu
yannou1456 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
moiced59 Messages postés 1145 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

je rencontre un problème dans la construction d'une macro excel.
Je souhaiterais que si "A & v1"="D10" alors "B & v1"="E10" mais également que si "A & v1"="G10" alors "B & v1"="H10". Mon problème est le lien entre les deux "SI".Je ne sais pas comment le notifier. Voici la macro telle que je l'ai actuellement:

Private Sub CommandButton1_Click()
Dim v1 As Integer
v1 = 1

Do
If Range("A" & v1).Value = Range("D10").Value Then
Range("B" & v1).Value = Range("E10").Value

Range("A" & v1).Value = Range("G10").Value Then
Range("B" & v1).Value = Range("H10").Value
End If
v1 = v1 + 1
Loop Until v1 = 10

End Sub

Il me faudrait en fait le lien pour dire "OU SI".
quelqu'un aurait il une idée de la formulation????

Je vous remercie pour les réponses!

A bientot
A voir également:

4 réponses

Ricky38 Messages postés 4349 Date d'inscription   Statut Contributeur Dernière intervention   1 462
 
Salut,

ElseIf pourrait t'aider ;)

Private Sub CommandButton1_Click()
Dim v1 As Integer
v1 = 1

Do
If Range("A" & v1).Value = Range("D10").Value Then
Range("B" & v1).Value = Range("E10").Value

ElseIf Range("A" & v1).Value = Range("G10").Value Then
Range("B" & v1).Value = Range("H10").Value
End If
v1 = v1 + 1
Loop Until v1 = 10

End Sub 
1
moiced59 Messages postés 1145 Date d'inscription   Statut Membre Dernière intervention   60
 
salut

tu peux simplement ajouter un if et repartir d'une constructuction neuve ou un else

Dim v1 As Integer
v1 = 1

Do
If Range("A" & v1).Value = Range("D10").Value Then
Range("B" & v1).Value = Range("E10").Value
end if

if Range("A" & v1).Value = Range("G10").Value Then
Range("B" & v1).Value = Range("H10").Value
End If
v1 = v1 + 1
Loop Until v1 = 10

End Sub

ou

Dim v1 As Integer
v1 = 1

Do
If Range("A" & v1).Value = Range("D10").Value Then
Range("B" & v1).Value = Range("E10").Value
else
if Range("A" & v1).Value = Range("G10").Value Then
Range("B" & v1).Value = Range("H10").Value
End If
end if
v1 = v1 + 1
Loop Until v1 = 10

End Sub
1
yannou1456 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonsoir,
merci à tous les deux pour vos réponses.j'ai finalement utilisé la solution de moiced59 qui consistait à terminer la première instruction par un "end if" et de repartir sur un nouveau "if".
j'ai également testé la solution du "elseif" mais ne correspondait pas tout à fait à ce que je voulais.

encore merci à vous pour les réponses et bonne soirée!!
0
Ricky38 Messages postés 4349 Date d'inscription   Statut Contributeur Dernière intervention   1 462
 
oui après avoir relu je me suis aperçu que le Elseif n'était pas pour ton cas :)

Tant mieux si tu as eu réponse à ton problème

Bonne journée et reviens nous voir ;)
0
moiced59 Messages postés 1145 Date d'inscription   Statut Membre Dernière intervention   60
 
impec bonne soiree
0