Plage de cellule non vide SINON pas de sauvegarde !

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

D

Dagada75

Guest
Bonjour à Tous !

J'espère que vous allez bien ... moi je progresse lentement mais sûrement dans le vba.
Je découvre chaque jour l'ENORME potentiel d'Excel pour des applications d'échelles moyennes 😱)
Mon soucis est le suivant ... j'ai réussi à "bidouiller" un bout de code vba pour essayer de résooudre mon problème (avec entre autre autre l'aide de ce forum) mais il ne répond pas complètement à mes attentes.
En fait, je souhaite rentre obligatoire le renseignement de certaines cellules de colonnes en EMPECHANT la sauvegarde du fichier en cas de manquement à la saisie.
Si j'arrive à bloquer la sauvegarde en désignant les cellules 1 à 1 à rendre obligatoire; je n'arrive pas à "codifier" la problématique suivante :

- Pour la feuille 1, les cellules des colonnes A et B pour CHAQUE ligne doivent être saisies avec comme condition :
- Pour chaque ligne (exemple ligne 2) si A2 est saisie alors B2 doit être saisie SINON pas de sauvegarde !
-Pour la feuille 1 , au minimum 1 ligne doit être saisie (donc A1 et B1) et il n'y a pas de maximum ... or je n'arrive pas "interpréter" cette limite "pas de maximum".... c'est à dire que je peux aussi bien avoir 1 ligne de saisie que 1000 lignes ...

Voilà le "bout de code" que j'aie pondu et qui reste TRES limité ... puisque je suis obligé de désigné CHAQUE cellule

Sub auto_open()
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheets(1).Range("A1") = "" Then Cancel = True
If Sheets(1).Range("A1") = "" Then MsgBox "Il reste des cellules non renseignées !"
If Sheets(1).Range("B1") = "" Then Cancel = True
If Sheets(1).Range("B1") = "" Then MsgBox "Il reste des cellules non renseignées !"
End Sub


Merci pour votre aide
 
bonjour Dagada75

tu peux tester cette macro , à placer au niveau de ThisWorkbook


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Application.CountBlank(Sheets(1).Range("A1:B1")) > 0 Then
Cancel = True
MsgBox "Il reste des cellules non renseignées !"
End If
End Sub


bonne journee
MichelXld
 
Bonjour (un matinal !) et merci pour ton aide MichelXld 😱)

Le hic, confère le fichier joint, c'est que SI je saisie la cellule A2 sans renseigner B2 ... l'enregistrement passe ...

Cela nous ramène à l'intérprétaion de la condition évoquée ci dessus
"-Pour la feuille 1 , au minimum 1 ligne doit être saisie (donc A1 et B1) et il n'y a pas de maximum ... or je n'arrive pas "interpréter" cette limite "pas de maximum".... c'est à dire que je peux aussi bien avoir 1 ligne de saisie que 1000 lignes ..."

En effet, s'agissant d'un fichier de saisie pour des utilisateurs X ou Y, je ne sais pas A L'AVANCE combien de lignes ils vont saisir pour la feuille considérée. Par contre je veux juste m'assurer que POUR TOUTES LES lignes avec colonne renseignée ... la colonne B annexe l'est aussi.

Merci encore ....

😱)
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
480
Réponses
4
Affichages
255
Retour