Messages avant fermeture Classeur

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

  • WorkbookMesg.zip
    4.1 KB · Affichages: 33

a3lain

XLDnaute Junior
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
 

a3lain

XLDnaute Junior
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
 

Discussions similaires

Statistiques des forums

Discussions
312 613
Messages
2 090 231
Membres
104 453
dernier inscrit
benjiii88