Plusieurs SI dans une macro excel

Résolu
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
Configuration: Windows XP
Firefox 3.5.7

4 réponses

  1. Contributeur
    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
    1. 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
      1. 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
        1. Contributeur
          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