Suite de If mais dans des cases différentes

Bonjour,

j'aimerais vérifier si dans ma ligne se trouve soit "alpha", soit "bravo", soit "delta" sinon il m'affiche le message "aucun des trois". J'essaye avec des If, ElsIf, Select Case mais ça ne marche pas ... Soit ça ne prend pas en compte ce qu'il y a après le Else soit ça ne trouve pas la case, bref ma condition ne marche pas.

Voici mon code :

Public Sub test()

i = 1
Ligne = 1

For i = 1 To 6 ' Un for incrémente tout seul sa variable
    MsgBox Ligne
    If Cells(1, 1) = "alpha" Then
        MsgBox "alpha"
        Ligne = Ligne + 1
    Else
        If Cells(1, 2) = "bravo" Then
            MsgBox "bravo"
            Ligne = Ligne + 1
        Else
            If Cells(1, 3) = "charlie" Then
                MsgBox "charlie"
                Ligne = Ligne + 1
            Else
                MsgBox "aucun des trois"
                Ligne = Ligne + 1
            End If
        End If
    End If
Next

End Sub

Voici ma grille d'exemple :

alphabravocharlie
delta
bravo
delta
charlie
echo
foxtrot

Merci par avance pour vos retours.

bonjour,

essaie ceci (non testé)

Public Sub test()

For i = 1 To 6 ' Un for incrémente tout seul sa variable
    MsgBox Ligne
    If Cells(i, 1) = "alpha" Then
        MsgBox "alpha en ligne " & i & " colonne 1"
    Else
        If Cells(i, 2) = "bravo" Then
            MsgBox "bravo en ligne " & i & " colonne 2"
        Else
            If Cells(i, 3) = "charlie" Then
                MsgBox "charlie en ligne " & i & " colonne 3"""
            Else
                MsgBox "aucun des trois en ligne " & i
            End If
        End If
    End If
Next

End Sub

Bonjour,

Tu souhaites que chaque cellule soit contrôlée ?

Dans ce cas :

Public Sub test()
For i = 1 To 6
    For c = 1 To 3
        Select Case Cells(i, c)
            Case "alpha"
                MsgBox "alpha"
            Case "bravo"
                MsgBox "bravo"
            Case "charlie"
                MsgBox "charlie"
            Case Else
                MsgBox "aucun des trois"
        End Select
    Next c
Next i
End Sub

Sinon, tu souhaites que le résultat soit défini à chaque fin de vérification de ligne ? C'est à dire que si l'un des 3 mots trouvés sur une ligne affiche le msgbox "trouvé", sinon "pas trouvé" ? Un exemple non optimisé :

Public Sub test_LIGNE()
TROUVE = False
For i = 1 To 6
    TROUVE = False
    For c = 1 To 3
        Select Case Cells(i, c)
            Case "alpha", "bravo", "charlie"
                TROUVE = True
            End Select
    Next c
        If TROUVE = True Then
            MsgBox "Trouvé ligne " & i
            Else
            MsgBox "Non trouvé ligne " & i
        End If
Next i
End Sub

Hello,

une proposition :

Public Sub test()

Dim varValeur As Variant

i = 1
Ligne = 1

For i = 1 To 6 ' Un for incrémente tout seul sa variable
  varValeur = Switch([Cells(i, 1) = "alpha", "alpha", Cells(i, 2) = "beta", "beta", Cells(i, 3) = "charlie", "charlie")
  If Not IsNull(varValeur ) Then MsgBox varValeur else msgbox "Aucun des trois"      
Next i

End Sub

OK, merci à tous les trois pour vos réponses. J'ai testé elle elles marchent donc je vous remercie pour votre aide, je ne suis plus bloqué ^^.

Rechercher des sujets similaires à "suite cases differentes"