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
bonjour @Marbou, @Jacky67 🙂


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...
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!
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

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

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 😱.
 
bonjour @Marbou, @Jacky67 🙂


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:
- 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
Retour