Messages avant fermeture Classeur

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

a3lain

XLDnaute Junior
Bonjour le forum,

Dans le fichier joint, je souhaiterais ajouter du code VBA pour effectuer un test à la fermeture du classeur et afficher des messages d'informations si certains critères manquent :

1) Test sur J3 des deux onglets pour voir si ils sont vides tous 2
Si oui : message 'le SIREN n'est pas renseigné - Voulez vous le renseigner? OUI NON'
Si OUI : ne pas fermer le classeur et se positionner sur J3 onglet Mois
Si NON : 'Pensez a le renseigner ulterieurement - Obligatoire' Quitter? OUI NON
Si Oui : quitter en sauvegardant
Si non : revenir en J3

2) si ils sont non vides, les comparer:
Si ils ne sont pas egaux : message Les SIREN des onglets Mois et Week sont differents - Corrigez ou supprimez en un
Si il sont egaux
Verifier que c'est une chaine de 9 chiffres qui sont inscrits.
Si oui, quitter en sauvegardant
Si non, message 'il y a une erreur dans le SIREN - 9 chiffres à ecrire - Voulez vous corriger? Oui Non
Si oui positionner en J3

Si NON : 'Pensez a le renseigner ulterieurement - Obligatoire' Quitter? OUI NON
Si Oui : quitter en sauvegardant
Si non : revenir en J3

En fait on sauvegarde toujours à la fin même si c'est pas rempli ou faux mais on averti toujours l'utilisateur.

Voila - j'espère que j'ai été clair dans ces boucles.
et merci d'avance pour votre aide enore une fois

alain [file name=WorkbookMesg.zip size=4215]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/WorkbookMesg.zip[/file]
 

Pièces jointes

J'ai mis cela mais appremment si à la fin on decide de ne pas sortir , on sort quand meme du programme sans revenir en J3 :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim SirenMonthly As String
Dim SirenWeekly As String
Dim rep1 As Integer
Dim rep2 As Integer

SirenMonthly = Worksheets('Mois').Range('J3')
SirenWeekly = Worksheets('Week').Range('J3')

If (SirenMonthly = '' And SirenWeekly = '') Then
rep1 = MsgBox('le SIREN n'est pas renseigné - Voulez vous le renseigner?', vbYesNo)
If rep1 = vbNo Then
rep2 = MsgBox('Pensez à le renseigner ulterieurement - Obligatoire - Quitter?', vbYesNo)
If rep2 = vbYes Then Exit Sub
If rep2 = vbNo Then
Worksheets('Mois').Range('J3').Select
Cancel = True
Exit Sub
End If
End If
End If
End Sub

Idée?
Merci
 
J'ai mis cela mais appremment si à la fin on decide de ne pas sortir , on sort quand meme du programme sans revenir en J3 :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim SirenMonthly As String
Dim SirenWeekly As String
Dim rep1 As Integer
Dim rep2 As Integer

SirenMonthly = Worksheets('Mois').Range('J3')
SirenWeekly = Worksheets('Week').Range('J3')

If (SirenMonthly = '' And SirenWeekly = '') Then
rep1 = MsgBox('le SIREN n'est pas renseigné - Voulez vous le renseigner?', vbYesNo)
If rep1 = vbNo Then
rep2 = MsgBox('Pensez à le renseigner ulterieurement - Obligatoire - Quitter?', vbYesNo)
If rep2 = vbYes Then Exit Sub
If rep2 = vbNo Then
Worksheets('Mois').Range('J3').Select
Cancel = True
Exit Sub
End If
End If
End If
End Sub

Idée?
Merci
 
- 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

Retour