Message d'erreur en fonction de cases remplies ou non

Fermé
Greeegoryyy - 4 mai 2017 à 09:06
 Greeegoryyy - 4 mai 2017 à 10:40
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
4 mai 2017 à 09:50
Bonjour
Essaye un AND au lieu fu OR
1
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
4 mai 2017 à 10:38
Dans ce cas tu gardes tes OR ... mais... a la place de <> .. tu mets du =
0
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