OVH Cloud OVH Cloud

Pb d'écriture

4 réponses
Avatar
Michel.Girard
Bonjour
J'essaie de créer une procédure qui interdit de quitter avec la croix, et
qui oblige l'utilisateur à quitter ave le bouton quitter.
J'ai une erreur, et cela ne fonctionne pas
Comment dois-je l'écrire ?
Merci beaucoup
Michel

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not quitter Then
MsgBox "Vous devez quitter par le bouton quitter !", _
vbExclamation, " Désolé..."
Cancel = True
End If
End Sub

Sub pas_la_croix()
If MsgBox("Voulez-vous enregistrer votre travail ?", _
vbYesNo + vbQuestion, " Enregistrer ?") = vbYes Then
quitter = True
ThisWorkbook.Save
Application.Quit
Else
quitter = True
ThisWorkbook.Saved = True
'tu lui fais croire que cela a été sauvegardé
Application.Quit
End If
End Sub

4 réponses

Avatar
papou
ReBonjour
Déclarer la variable quitter en tête d'un module standard et la déclarer
Public :
Public quitter As Boolean
Par contre de quel bouton quitter s'agit-il ?

Cordialement
Pascal

"Michel.Girard" a écrit dans le message de
news:
Bonjour
J'essaie de créer une procédure qui interdit de quitter avec la croix, et
qui oblige l'utilisateur à quitter ave le bouton quitter.
J'ai une erreur, et cela ne fonctionne pas
Comment dois-je l'écrire ?
Merci beaucoup
Michel

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not quitter Then
MsgBox "Vous devez quitter par le bouton quitter !", _
vbExclamation, " Désolé..."
Cancel = True
End If
End Sub

Sub pas_la_croix()
If MsgBox("Voulez-vous enregistrer votre travail ?", _
vbYesNo + vbQuestion, " Enregistrer ?") = vbYes Then
quitter = True
ThisWorkbook.Save
Application.Quit
Else
quitter = True
ThisWorkbook.Saved = True
'tu lui fais croire que cela a été sauvegardé
Application.Quit
End If
End Sub







Avatar
anonymousA
bonjour,

si tu souhaites que l'utilisateur ne quitte pas en actionnant la croix
de fermeture d'Excel, il te faudra bricoler les API. Je te conseille de
faire un tour sur le site de Frédéric Sigonneau où il existe des
exemples de cet ordre ( de mémoire) ou celui ( si tu pratiques la langue
de Shakeaspeare) d'un certain Ivan Moala et des liens attenants. Il y a
parfois de bonnes surpises.

Par ailleurs, si la croix à laquelle tu fais allusion est celle d'un
formulaire, de 2 choses l'une, soit tu l'enlèves ( là encore en
bricolant les API, soit tu la gardes et tu gères en utilisant
l'évenement QueryClose du formulaire.

A+

Bonjour
J'essaie de créer une procédure qui interdit de quitter avec la croix, et
qui oblige l'utilisateur à quitter ave le bouton quitter.
J'ai une erreur, et cela ne fonctionne pas
Comment dois-je l'écrire ?
Merci beaucoup
Michel

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not quitter Then
MsgBox "Vous devez quitter par le bouton quitter !", _
vbExclamation, " Désolé..."
Cancel = True
End If
End Sub

Sub pas_la_croix()
If MsgBox("Voulez-vous enregistrer votre travail ?", _
vbYesNo + vbQuestion, " Enregistrer ?") = vbYes Then
quitter = True
ThisWorkbook.Save
Application.Quit
Else
quitter = True
ThisWorkbook.Saved = True
'tu lui fais croire que cela a été sauvegardé
Application.Quit
End If
End Sub







Avatar
Michel.Girard
Merci encore une fois Papou
décidément ;-)
J'ai effectivement déclaré la variable en tête de module, et cela fonctionne
très bien.
Merci encore
Michel

"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:
%
ReBonjour
Déclarer la variable quitter en tête d'un module standard et la déclarer
Public :
Public quitter As Boolean
Par contre de quel bouton quitter s'agit-il ?

Cordialement
Pascal

"Michel.Girard" a écrit dans le message
de news:
Bonjour
J'essaie de créer une procédure qui interdit de quitter avec la croix, et
qui oblige l'utilisateur à quitter ave le bouton quitter.
J'ai une erreur, et cela ne fonctionne pas
Comment dois-je l'écrire ?
Merci beaucoup
Michel

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not quitter Then
MsgBox "Vous devez quitter par le bouton quitter !", _
vbExclamation, " Désolé..."
Cancel = True
End If
End Sub

Sub pas_la_croix()
If MsgBox("Voulez-vous enregistrer votre travail ?", _
vbYesNo + vbQuestion, " Enregistrer ?") = vbYes Then
quitter = True
ThisWorkbook.Save
Application.Quit
Else
quitter = True
ThisWorkbook.Saved = True
'tu lui fais croire que cela a été sauvegardé
Application.Quit
End If
End Sub











Avatar
Michel.Girard
Merci beaucoup anonymousA
Je vais aller voir
Michel

"anonymousA" a écrit dans le message de news:
421897c3$0$807$
bonjour,

si tu souhaites que l'utilisateur ne quitte pas en actionnant la croix de
fermeture d'Excel, il te faudra bricoler les API. Je te conseille de faire
un tour sur le site de Frédéric Sigonneau où il existe des exemples de cet
ordre ( de mémoire) ou celui ( si tu pratiques la langue de Shakeaspeare)
d'un certain Ivan Moala et des liens attenants. Il y a parfois de bonnes
surpises.

Par ailleurs, si la croix à laquelle tu fais allusion est celle d'un
formulaire, de 2 choses l'une, soit tu l'enlèves ( là encore en bricolant
les API, soit tu la gardes et tu gères en utilisant l'évenement QueryClose
du formulaire.

A+

Bonjour
J'essaie de créer une procédure qui interdit de quitter avec la croix, et
qui oblige l'utilisateur à quitter ave le bouton quitter.
J'ai une erreur, et cela ne fonctionne pas
Comment dois-je l'écrire ?
Merci beaucoup
Michel

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not quitter Then
MsgBox "Vous devez quitter par le bouton quitter !", _
vbExclamation, " Désolé..."
Cancel = True
End If
End Sub

Sub pas_la_croix()
If MsgBox("Voulez-vous enregistrer votre travail ?", _
vbYesNo + vbQuestion, " Enregistrer ?") = vbYes Then
quitter = True
ThisWorkbook.Save
Application.Quit
Else
quitter = True
ThisWorkbook.Saved = True
'tu lui fais croire que cela a été sauvegardé
Application.Quit
End If
End Sub