Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Création VBA - Obliger à remplir toute les cellules d'une ligne avant fermeture

  • Initiateur de la discussion Initiateur de la discussion Marbou
  • 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 !

Marbou

XLDnaute Nouveau
Bonjour,

Je cherche à obliger les utilisateurs d'un fichier à remplir toutes les cellules d'une ligne avant de fermer le fichier.
Après recherche sur votre forum, il me semble que la meilleure option est la création d'un VBA.
J'ai l'onglet développeur mais je ne sais pas m'en servir.
Pourriez-vous m'aider?

Merci d'avance!
 
Solution
Hello mapomme ,
Dans ce cas précis, on pourrait imaginer prévenir l'utilisateur par:
MsgBox "Veuillez saisir toutes les cellules" & vbLf & "Pour continuer ou fermer le classeur sans compléter les cellules," & vbLf & "effacez...
Bonjour,
En supposant que les cellules à saisir soient [A2:J2]
Ceci dans le Thisworkbook
Pour y accéder
Alt+F11==>sélectionner Thisworkbook dans la fenêtre à gauche et coller le code ci-dessous dans la fenêtre de droite
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Application.CountA(Feuil1.[A2:J2]) <> 10 Then
        Cancel = True
        MsgBox "Veuillez saisir toutes les cellules"
    End If
End Sub
 

Pièces jointes


Merci beaucoup pour le code et l'explication.
Cela fonctionne bien si je demande la fermeture du fichier directement. Mais si j'enregistre avant, le fichier se ferme même si certaines cellules de la ligne comprises entre A et J ne sont pas remplies.
Par ailleurs, que faudrait-il que j'ajoute au code pour que la règle s'applique dès lors qu'une cellule d'une ligne est remplie?
Exemple : si la cellule B12 est remplie, toutes les cellules de la ligne 12 doivent l'être.
Merci encore!
 
Merci beaucoup pour le code et l'explication.
Exemple : si la cellule B12 est remplie, toutes les cellules de la ligne 12 doivent l'être.
Merci encore!
RE
?????
il y a 16384 cellules dans une ligne, et la ligne 12 n'est pas exclue.
La question était
''Obliger à remplir toute les cellules d'une ligne avant fermeture''
Mettre le classeur en ligne
 
Dernière édition:
bonjour @Marbou, @Jacky67 🙂
Je cherche à obliger les utilisateurs d'un fichier à remplir toutes les cellules d'une ligne avant de fermer le fichier.

Attention, dans un temps jadis, j'avais voulu faire cela. Mais on ne maitrise pas l'utilisateur et ses réactions (qui peuvent être tout à fait justifiées par ailleurs). Il faut lui laisser une possibilité d'abandon.
Sinon, quand l'utilisateur n'avait pas toutes les données sous la main, Il saisissait n'importe quoi pour sortir de la boucle ou bien il utilisait le Ctrl+Alt+Suppr et tuait la tâche Excel. Et ce qui devait arriver arrivait : corruption du fichier 😱.
 
Hello mapomme ,
Dans ce cas précis, on pourrait imaginer prévenir l'utilisateur par:
MsgBox "Veuillez saisir toutes les cellules" & vbLf & "Pour continuer ou fermer le classeur sans compléter les cellules," & vbLf & "effacez la saisie en B12"
et un exit sub sur B12=""
 
Dernière édition:
Bonjour @Jacky67 , @mapomme,

Merci de vos retours!
@Jacky67 je m'excuse pour l'imprécision de ma demande, je n'ai pas l'habitude et n'emploie pas les bons termes.
@mapomme vous avez raison, je vais réfléchir à une solution moins radicale, telle que le message demandant de saisir toutes les cellules sans bloquer la fermeture du fichier.

Bonne fin de 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

Discussions similaires

Réponses
3
Affichages
989
Réponses
7
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…