La croix de fermeture d'xl

isamancal Messages postés 2 Date d'inscription jeudi 4 septembre 2003 Statut Membre Dernière intervention 17 septembre 2003 - 13 sept. 2003 à 10:38
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007 - 14 sept. 2003 à 00:48
Sub Auto_Open()
'
' Auto_Open Macro
' Macro enregistrée le 19/04/2002 par LEFEVRE.PASCAL
Dim i As Integer
With CommandBars("worksheet menu bar").Controls
For i = 1 To .Count .Item(i).Visible .Item(i).Caption "P.LEFE&VRE"
Next i
End With
Application.DisplayFullScreen = True
End Sub
__________________________________________________________
Sub Auto_Close()
'
' Auto_Close Macro
' Macro enregistrée le 19/04/2002 par LEFEVRE.PASCAL
Dim i As Integer
With CommandBars("worksheet menu bar").Controls
For i = 1 To .Count
.Item(i).Visible = .Item(i).Caption <> "P.LEFE&VRE"
Next i
End With
Application.DisplayFullScreen = False

End Sub

Voici les deux macro pour faire apparaitre et disparaitre la barre de menu d'excel.
j'aimerais trouver du code pour rendre inactive la croix de fermeture et obliger les utilisateurs de mon logiciel à quitter l'application par un bouton "Quitter"
Merci

3 réponses

cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
13 sept. 2003 à 14:20
Je ne connais pas le truc pour rendre inactif la croix de fermeture...

Par contre, il me semble qu'il existe un évènement qui s'exécute juste avant la fermeture de la fenêtre. Si tel est le cas, il te suffirait de mettre la procédure de renvois vers le code de ton bouton "Quitter"...

Je jette un oeil...

Programmix
0
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
13 sept. 2003 à 14:29
Voilà dans le cas d'un classeur, voici le code...

Private Sub Workbook_BeforeClose(Cancel As Boolean)

If MsgBox("Etes-vous certain de vouloir quitter ?", vbYesNo) = vbNo Then
Cancel = True
Exit Sub
End If

End Sub

En mettant "Cancel = True", on annule la procédure de fermeture.

Cette procédure fonctionne également si on clique sur la croix d'Excel dans la mesure où Excel cherchera à fermer le classeur contenant la procédure ci-dessus avant de se décharger.

Programmix
0
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
14 sept. 2003 à 00:48
La bonne solution est bien celle donnée par PROGRAMMIX, cependant l'usage courant est le suivant :

on déclare en public une variable booléenne, exemple FlagFin,
et dans l'évènement beforeclose,
on inscrit : Cancel = Not FlagFin

Ainsi, le programme ne se fermera que lorsque tu le décides, par exemple dans ton bouton quitter, où avec le reste de ton code il suffit de placer la ligne "FlagFin = True" juste avant ton instruction de fermeture.

C'est la méthode universelle pour Excel.

@+

Celi-phane (...ne-Sté...),
elle tricote, lui développe... ;)
0
Rejoignez-nous