Plusieurs SI dans une macro excel

Résolu/Fermé
yannou1456 Messages postés 22 Date d'inscription mercredi 25 novembre 2009 Statut Membre Dernière intervention 16 février 2010 - 26 janv. 2010 à 22:10
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 - 27 janv. 2010 à 21:13
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 samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 459
26 janv. 2010 à 22:15
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 samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
26 janv. 2010 à 22:21
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 mercredi 25 novembre 2009 Statut Membre Dernière intervention 16 février 2010 2
27 janv. 2010 à 21:05
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 samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 459
27 janv. 2010 à 21:10
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 samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
27 janv. 2010 à 21:13
impec bonne soiree
0