Message automatique avant fermeture du fichier

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

sebbbbb

XLDnaute Impliqué
bonjour

ce code ne fonctionne pas.
voyez vous la raison svp
merci par avance

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Msg = "Avez-vous inscrit" & vbCrLf & "" & vbCrLf & " votre nom et la date de la dernière mise à jour sur la feuille accueil merci"
StyleBoîteDialogue = vbOKOnly + vbQuestion
Title = "Avant de fermer ce fichier,"
réponse = MsgBox(Msg, StyleBoîteDialogue, Title)
End Sub
 
Bonsoir.
Il serait de toute façon bon de déclarer les variables utilisées :
VB:
Dim Msg As String, StyleBoîteDialogue As VbMsgBoxStyle, Réponse As VbMsgBoxResult, Title As String
Mais à par ça le message s'affiche bien, qu'est-ce qui ne va pas ?
La procédure est elle bien dans le module ThisWorkbook ?
Dans la mesure où vous n'utilisez aucunement la réponse, d'ailleurs unique possible, il ne sert à rien de l'invoquer comme fonction, ceci suffit :
VB:
MsgBox Msg, StyleBoîteDialogue, Title
 
Bonjour,
Ce code placé dans le ThisWorkbook du classeur en question fait ce qui est demandé.
Il pose la question, sans donner de choix de la réponse.

Voir en PJ un exemple simple avec choix"Oui" "Non"
-Oui ==>Le choix reste à définir (Dans l'exemple le fichier est enregistré et fermé)
-Non ==>la feuille "Accueil" est activée
Si ces informations sont connues, on pourrait imaginer d'automatiser les vérifications
 

Pièces jointes

Dernière édition:
Merci a vous
Jacky67, ton code me plait bien 🙂

je voudrai juste :
- si la réponse est oui : en cliquant sur le bouton oui : le fichier se ferme
- si la réponse est non : le message disparaît en laissant le fichier ouvert et donc la possibilité de modifier le fichier en attendant autre fermeture du fichier

peux tu modifier ton code stp ?

un grand merci par avance
seb
 
juste pour l'esthétique : est il possible de modifier la couleur du titre du message et le centrer ? 😀
seb
RE..
A ma connaissance, Non!
Quoi que pour le centrage , il y a les espaces.......
Code:
If MsgBox("Avez-vous inscrit" & vbCrLf & vbCrLf & "votre nom et la date de la dernière mise à jour sur la feuille accueil merci", 292, "                                            Avant de fermer ce fichier,") = 6 Then

Il y a la possibilité d'utiliser un userform, mais c'est plus compliqué.
 
Effectivement le coup des espaces...tout bête mais efficace
une dernière requête si tu veux bien

Donc grâce à toi j'ai insérer le code ci-dessous qui marche parfaitement

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("SVP, MERCI CONFIRMER QUE VOUS AVEZ :" & vbCrLf & vbCrLf & "- Mis a jour la check list (avec date & initiales)" & vbLf & "- Mis a jour S.Wing" & vbLf & "- Actualisé l'écran du bureau" & vbLf & "- Envoyé L'email quotidien avec les prospects actualisés" & vbLf & "- Mis à jour l'eventuel hub system (youriss / eyefreight / DA desk)", 292, "AVANT DE FERMER CE FICHIER,") = 6 Then
Else
Cancel = True
Sheets("Fiche Données").Activate
End If
End Sub

ce que je voudrai maintenant c'est que lorsque je clique sur le bouton 'NON' celà m'envoie à non plus à l'onglet 'Fiche Données' mais à une autre. Le hic c'est que celà peut être une feuille avec un nom variable mais qui commencera toujours par 'CList'. j'ai donc fait le code ci-dessous mais celà ne fonctionne pas...

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("SVP, MERCI CONFIRMER QUE VOUS AVEZ :" & vbCrLf & vbCrLf & "- Mis a jour la check list (avec date & initiales)" & vbLf & "- Mis a jour S.Wing" & vbLf & "- Actualisé l'écran du bureau" & vbLf & "- Envoyé L'email quotidien avec les prospects actualisés" & vbLf & "- Mis à jour l'eventuel hub system (youriss / eyefreight / DA desk)", 292, "AVANT DE FERMER CE FICHIER,") = 6 Then
Else
Cancel = True
Sheets("CList" & "*").Activate
End If
End Sub

vois tu une solution stp ?

merci bcp par avance
seb
 
Je me fiche du nom de l'onglet Excel, vous y mettez ce que vous voulez. Je vous parlais du nom de l'objet Worksheet qui le représente. Je ne laisse jamais Feuil1, Feuil2 etc. qui ne veulent rien dire. Ne pourriez vous l'appelez WshCList par exemple ?
Sinon n'a-t-il pas au moins toujours la même position dans la collection Worksheets ?
 
je pense avoir trouvé tout seul comme un grand 🙂
heureusement car a cause de mon niveau je n'arrivais pas a te suivre
merci qd même

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("SVP, MERCI CONFIRMER QUE VOUS AVEZ :" & vbCrLf & vbCrLf & "- Mis a jour la check list (avec date & initiales)" & vbLf & "- Mis a jour S.Wing" & vbLf & "- Actualisé l'écran du bureau" & vbLf & "- Envoyé L'email quotidien avec les prospects actualisés" & vbLf & "- Mis à jour l'eventuel hub system (youriss / eyefreight / DA desk)", 292, "AVANT DE FERMER CE FICHIER,") = 6 Then
Else
Cancel = True
End If
Dim i
For i = 1 To ActiveWorkbook.Worksheets.Count
If Sheets(i).Name Like ("CList" & "*") Then
Sheets(i).Activate
Exit Sub
End If
Next i
End Sub
 
- 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
582
Retour