Ou à répétition

Bonjour !

Je voudrais connaitre la syntaxe exacte pour pouvoir écrire la fonction suivante. Je veux juste dire que si une case est différente de "M4" ou "M5" etc... bah je fais une action mais il accepte pas mes ou à répétition.

"M4", "M5" etc.. sont des valeurs et non des numéros de case ! :)

Merci d'avance !

If Sheets("02 Shaft end-Shaft").Cells(24, 3).Value <> "M4" Or "M5" Or "M6" Or "M8" Or "M10" Or "M12" Or "M14" Or "M16" Or "M1"8 Or "M20" Or "M24" Or "M30" Then

Sheets("02 Shaft end-Shaft").Cells(24, 3) = "A définir"

Sheets("02 Shaft end-Shaft").Cells(24, 3).Interior.Color = RGB(255, 0, 0)

End If

Bonjour,

Pour que ça fonctionne, il faudrait que tu identifies à chaque fois la cellule qui doit être différente de la valeur. Ce serait alors beaucoup plus long au niveau de la syntaxe.

Tu peux tenter :

with Sheets("02 Shaft end-Shaft").Cells(24, 3)
if .Value <> "M4" Or .value<>"M5" Or .value<>"M6" Or .value<>"M8" Or .value<>"M10" Or .value<>"M12" Or .value<>"M14" Or .value<>"M16" Or .value<>"M18" Or .value<>"M20" Or .value<>"M24" Or .value<>"M30" Then
.value = "A définir"
.Interior.Color = RGB(255, 0, 0)
End with
End If

Et d'une manière générale, essaye de regarder du côté des array, tu y gagnerais grandement ;)

bonjour à tous,

je pense que tes OR doivent être des AND, si a<>"M12" OR a <>"M13" est toujours vrai ! que a contienne M12, M13 ou autre chose.

sinon, tu peux également utiliser avantageusement select case :

ainsi :

    Select Case Sheets("02 Shaft end-Shaft").Cells(24, 3).Value
        Case "M4", "M5", "M6", "M8", "M10", "M12", "M14", "M16", "M18", "M20", "M24", "M30"
             'ne rien faire
        Case Else
            Sheets("02 Shaft end-Shaft").Cells(24, 3) = "A définir"
            Sheets("02 Shaft end-Shaft").Cells(24, 3).Interior.Color = RGB(255, 0, 0)
    End Select

Hello h2so4,

Exact !

Rechercher des sujets similaires à "repetition"