OVH Cloud OVH Cloud

Ne pas fermer un classeur

2 réponses
Avatar
DoMi
Bonjour !

J'ai cr=E9=E9 une appli qui comprend 2 classeurs: un avec des=20
donn=E9es, l'autre avec le programme. Le classeur-programme=20
comprend un bouton qui enregistre les donn=E9es et ferme le=20
tout. Si un utilisateur ferme le classeur-donn=E9es par=20
fichier-fermer ou par la case-syst=E8me, le classeur-
programme perd ses donn=E9es et plante, =E9videmment!
Comment faire pour emp=EAcher un utilisateur de fermer un=20
classeur qu'il n'a pas =E0 fermer lui-m=EAme?

Merci pour votre aide !
DoMi

2 réponses

Avatar
papou
Bonjour DoMi
Dans le code de ThisWorkBook :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If .... Then 'Si condition pour fermeture n'est pas remplie
Cancel = True 'impossible de fermer
Else 'sinon
Cancel = False 'fermeture possible
End If
End Sub

Cordialement
Pascal

"DoMi" a écrit dans le message de news:
3e0a01c34071$aa39c260$
Bonjour !

J'ai créé une appli qui comprend 2 classeurs: un avec des
données, l'autre avec le programme. Le classeur-programme
comprend un bouton qui enregistre les données et ferme le
tout. Si un utilisateur ferme le classeur-données par
fichier-fermer ou par la case-système, le classeur-
programme perd ses données et plante, évidemment!
Comment faire pour empêcher un utilisateur de fermer un
classeur qu'il n'a pas à fermer lui-même?

Merci pour votre aide !
DoMi
Avatar
DoMi
Ca marche bien, trop bien même car je ne peux plus fermer
le classeur-données:

Dans ThisWorkbook du classeur-programme, j'ai déclaré:
Public BoutonQuitter as Boolean

Puis dans
Private Sub Workbook_Open()
BoutonQuitterúlse
Workbooks.Open Filename:=ClasseurDonnees.xls
'ouvre classeurDonnees
etc

Dans Classeur-prog j'ai
Sub Quitter()
BoutonQuitter=True
Windows("ClasseurDonnees").Activate
ActiveWorkbook.Close
etc

Ce qui amène à
ThisWorkbook_BeforeClose ' du classeurDonnees, et là, la
variable BoutonQuitter est vide, donc
If BoutonQuitterúlse Then ' et c'est le cas
Cancel=True ' et on ne peut pas fermer

Y a-t-il une solution ?
Merci !
-----Message d'origine-----
Bonjour DoMi
Dans le code de ThisWorkBook :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If .... Then 'Si condition pour fermeture n'est pas
remplie

Cancel = True 'impossible de fermer
Else 'sinon
Cancel = False 'fermeture possible
End If
End Sub

Cordialement
Pascal

"DoMi" a écrit dans le message de news:
3e0a01c34071$aa39c260$
Bonjour !

J'ai créé une appli qui comprend 2 classeurs: un avec des
données, l'autre avec le programme. Le classeur-programme
comprend un bouton qui enregistre les données et ferme le
tout. Si un utilisateur ferme le classeur-données par
fichier-fermer ou par la case-système, le classeur-
programme perd ses données et plante, évidemment!
Comment faire pour empêcher un utilisateur de fermer un
classeur qu'il n'a pas à fermer lui-même?

Merci pour votre aide !
DoMi


.