Bonjour, Salut à tous !
Une proposition :
Option Compare Text
Sub VérifSaisie()
Dim aa, i%, msg$, col$
aa = Worksheets("Feuil1").Range("A1").CurrentRegion
For i = 2 To UBound(aa)
If aa(i, 2) Like "ca*" Or aa(i, 2) Like "abs*" Then
Else
If aa(i, 5) = "" Then col = "Col. E"
If aa(i, 7) = "" Then col = col & IIf(col <> "", " et G", "Col. G")
End If
If col <> "" Then
msg = msg & Chr(10) & "- Ligne " & i & " : " & col
col = ""
End If
Next i
If msg <> "" Then
msg = "Manque information :" & Chr(10) & msg
Else
msg = "Aucune information manquante."
End If
MsgBox msg, vbInformation, "Vérification saisie"
End Sub
NB- L'option Compare Text, motivée par le fait que tu indiques CA dans ton post mais que figure ca dans ton fichier... Si donc on risque d'avoir des variations de casse, il peut être utile de définir l'option de comparaison de façon à les ignorer.
L'Option Compare par défaut est Binary, soit que la comparaison tient compte de la casse... Lorsque l'on définit un module avec une option spécique qui déroge à l'option par défaut, il me paraît souhaitable de réserver le module aux procédures qui auront besoin de l'option, et placer celles qui n'en ont pas besoin dans un autre module, lequel conservera les options par défaut de VBA. Ce qui permet d'utiliser l'ensemble des possibilités en évitant au maximum les risques d'erreur...
La procédure est déclenchée à l'ouverture du classeur, et peut être déclenchée à tout moment par le bouton Vérif.
Cordialement.