Bonjour,

Je suis sur une macro qui me pose problème.
J'ai un onglet "Localisation" dans lequel il y a des zones de saisis.
je voudrai vérifier le document pour que s'il y a des données dans les autres colonnes et que le champ de la colonne F n'est pas renseigné on
affiche un message d'erreur.

Voilà le code que j'ai fais et il fonctionne à la main pour les tests j'ouvre le document je saisi en oubliant le champ F cela fonctionne et quand je le
rempli plus de message. Mais quand le batch lance ce fichier il me met le message d'erreur sur tout les lignes active du document.

Avez-vus déjà eu ce problème ?

Merci par avance pour votre aide.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets("Localisation").Select
 
NbLignes = ActiveSheet.UsedRange.Rows.Count
 
For ligne = 2 To NbLignes
If Worksheets("Localisation").Range("A" & ligne) <> "" Or Worksheets("Localisation").Range("B" & ligne) <> "" Or Worksheets("Localisation").Range("C" & ligne) <> "" Or Worksheets("Localisation").Range("D" & ligne) <> "" Or Worksheets("Localisation").Range("E" & ligne) <> "" Or Worksheets("Localisation").Range("G" & ligne) <> "" Or Worksheets("Localisation").Range("H" & ligne) <> "" Or Worksheets("Localisation").Range("I" & ligne) <> "" Or Worksheets("Localisation").Range("J" & ligne) <> "" Or Worksheets("Localisation").Range("K" & ligne) <> "" Or Worksheets("Localisation").Range("L" & ligne) <> "" Or Worksheets("Localisation").Range("M" & ligne) <> "" Or Worksheets("Localisation").Range("N" & ligne) <> "" Or Worksheets("Localisation").Range("O" & ligne) <> "" Or Worksheets("Localisation").Range("P" & ligne) <> "" _
Or Worksheets("Localisation").Range("Q" & ligne) <> "" Or Worksheets("Localisation").Range("R" & ligne) <> "" Or Worksheets("Localisation").Range("S" & ligne) <> "" Or Worksheets("Localisation").Range("T" & ligne) <> "" Or Worksheets("Localisation").Range("U" & ligne) <> "" Or Worksheets("Localisation").Range("V" & ligne) <> "" And Worksheets("Localisation").Range("F" & ligne) = "" Then
MsgBox "Libellé manquant en F" & ligne & " de l'onglet Localisation. Merci de compléter.", vbExclamation, "Message Erreur"
Cancel = True 'Annule les demandes d'enregistrement
End If
Next ligne
End Sub