alerte en cas de saisie non réalisée

  • Initiateur de la discussion Initiateur de la discussion lmylvc
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lmylvc

XLDnaute Occasionnel
Hello les amis

Je suis certain que quelqu'un a déjà développé ce code VBA aussi je vous sollicite.

Le contexte :j'ai un tableau comprenant plusieurs cellules à renseigner

Mon pb : certaines cellules ne sont pas renseignées sur une même ligne (oublis involontaires)

Mon besoin : à la fermeture du formulaire, je souhaiterai qu'un message d'alerte indique
que des données manquent dans mes derniers enregistrements, et que le formulaire ne se ferme pas
tant que la saisie n'est pas réalisée.
Ci joint un fichier Bidon pour silmuler le cas.

Merci d'avance

Vincent
 

Pièces jointes

Re : alerte en cas de saisie non réalisée

Salut Lmylvc,

Le code doit être écrit au niveau du formulaire. Peux-tu nous le mettre, qu'on puisse t'indiquer le code à créer et l'endroit où le placer?

Succintement, il faut :
-> mettre le code dans la macro lié au bouton "VALIDER" de ton UserForm (formulaire).
-> dire à excel de ne pas sortir du formulaire tant que la TextBox, ComboBox, ... n'est pas renseigné et/ou contient une donnée valide (par exemple que des chiffres s'il s'agit d'un code postal). Tu peux évidement assortir cela d'une MsgBox pour indiquer à l'utilisateur qu'il a oublié de renseigner ...

Bonne après midi
Cordialement
 
Dernière édition:
Re : alerte en cas de saisie non réalisée

Pas très optimisé mais ça marche :

Private Sub Worksheet_Deactivate()

Dim der As Integer
Dim i As Integer

der = Range("a65536").End(xlUp).Row


For i = 1 To der

If Cells(i, 1).Value = "" Then
MsgBox ("Certaines cellules de la colonne Date ne sont pas remplies, veuillez vérifier votre saisie !")
Exit Sub
End If

If Cells(i, 2).Value = "" Then
MsgBox ("Certaines cellules de la colonne Service ne sont pas remplies, veuillez vérifier votre saisie !")
Exit Sub
End If

If Cells(i, 3).Value = "" Then
MsgBox ("Certaines cellules de la colonne PB ne sont pas remplies, veuillez vérifier votre saisie !")
Exit Sub
End If

If Cells(i, 4).Value = "" Then
MsgBox ("Certaines cellules de la colonne Validation ne sont pas remplies, veuillez vérifier votre saisie !")
Exit Sub
End If

Next
End Sub

Edit : petit erreur dans les chiffres 😛 On peut retirer les Exit sub pour avoir la liste des champs pour lesquels il manque une valeur aussi.
 
Dernière édition:
Re : alerte en cas de saisie non réalisée

Tout dabord, merci à toi Mintri car
ton petit bout de code fonctionne à merveille.

Je donne suite à cette requête un peu tardivement pour cause d'emploi du temps un peu chargé.

Lors de l'utilisation de cette macro, je me suis rendu compte qu'il serai plutôt préférable que le message box s'affiche à l'enregistrement du fichier avant fermeture
Cela serait-il dans tes cordes ???? ou dans celles d'un autre pro 😎

Merci d'avance

Vincent
 
Re : alerte en cas de saisie non réalisée

Hello Vincent,

Je pense que tu peux mettre la même macro avec quelques petites modifs dans ton objet "ThisWorkbook" au lieu de la mettre dans un module. J'ai rajouté également le nom de la feuille (pour que la macro s'exécute sur la bonne feuille), remplace le XXXX par le nom de ta feuille !

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim der As Integer
Dim i As Integer

Sheets("XXXX").Activate

der = Range("a65536").End(xlUp).Row


For i = 1 To der

If Cells(i, 1).Value = "" Then
MsgBox ("Certaines cellules de la colonne Date ne sont pas remplies, veuillez vérifier votre saisie !")
Exit Sub
End If

If Cells(i, 2).Value = "" Then
MsgBox ("Certaines cellules de la colonne Service ne sont pas remplies, veuillez vérifier votre saisie !")
Exit Sub
End If

If Cells(i, 3).Value = "" Then
MsgBox ("Certaines cellules de la colonne PB ne sont pas remplies, veuillez vérifier votre saisie !")
Exit Sub
End If

If Cells(i, 4).Value = "" Then
MsgBox ("Certaines cellules de la colonne Validation ne sont pas remplies, veuillez vérifier votre saisie !")
Exit Sub
End If

Next
End Sub

Je pense qu'il existe également un moyen d'annuler la fermeture du classeur mais je ne sais pas comment faire perso. Peut-être que quelqu'un d'autre peut t'aiguiller à ce sujet !

Bonne journée !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour