Message d'erreur en fonction de cases remplies ou non

Greeegoryyy -  
 Greeegoryyy -
Bonjour,

J'ai un petit problème concernant le code suivant :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim rep As Integer
Dim Lig As Long

Lig = 4 ' Première ligne à vérifier

Do While Not IsEmpty(Range("A" & Lig))


If (Worksheets("Feuil1").Cells(Lig, 37).Value <> "0") Or (Worksheets("Feuil1").Cells(Lig, 37).Value <> "4") Then
SaveAsUI = False
Cancel = True
rep = (MsgBox("Vous ne pouvez pas sauvegarder si une des cases n'est pas remplieaa !"))
ElseIf (Worksheets("Feuil1").Cells(Lig, 36).Value <> "0") Or (Worksheets("Feuil1").Cells(Lig, 36).Value <> "4") Then
SaveAsUI = False
Cancel = True
rep = (MsgBox("Vous ne pouvez pas sauvegarder si une des cases n'est pas rempliezz !"))
ElseIf (Worksheets("Feuil1").Cells(Lig, 35).Value <> "0") Or (Worksheets("Feuil1").Cells(Lig, 35).Value <> "4") Then
SaveAsUI = False
Cancel = True
rep = (MsgBox("Vous ne pouvez pas sauvegarder si une des cases n'est pas remplieee !"))
ElseIf (Worksheets("Feuil1").Cells(Lig, 34).Value <> "0") Or (Worksheets("Feuil1").Cells(Lig, 34).Value <> "21") Then
SaveAsUI = False
Cancel = True
rep = (MsgBox("Vous ne pouvez pas sauvegarder si une des cases n'est pas rempliess !"))
Else
SaveAsUI = True
Cancel = False
End If

Lig = Lig + 1

Loop

End Sub


Je ne comprend pas car, peut importe si la cellule vérifiée de la première condition vaut 4 ou 0, il suit le then et me renvoie le premier messagebox, au lieu de, comme prévu, passer au elseif.

Merci d'avance pour vos réponse, cordialement.
A voir également:

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour
Essaye un AND au lieu fu OR
1
Greeegoryyy
 
Non je n'obtiendrais pas le résultat attendu, puisque ça passerait au elseif si les deux conditions sont réunies, et pas si au moins une des deux est présente.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Dans ce cas tu gardes tes OR ... mais... a la place de <> .. tu mets du =
0
Greeegoryyy
 
Je suis en train d'essayer avec les And, je crois bien que ça fonctionne... Je continue mes tests, si ça fonctionne je te remercie beaucoup de tes réponses jordane45 !
0