XL 2016 Empêcher la fermeture du classeur avec croix rouge

badraaliou4

XLDnaute Occasionnel
Bonjour,
Je ne parviens pas bloquer la fermeture mon classeur avec le croix rouge sous Excel 2016.
Ci-dessous mon code
Merci pour votre aide
VB:
Private Sub workbook_beforeclose(cancel as boolean)
dim Sh as string
sh=activesheet.name
if sh<>("login") then cancel= not bye
application.thisworkbook.saved=true
end sub
 

Pounet95

XLDnaute Occasionnel
Bonjour,
Trouvé ceci dans mes archives du temps d'Excelabo :(
Code dû à Frédéric Sigonneau

Je l'ai placé dans le workbook_open.
Est-ce le meilleur endroit ??

Code:
'Attribute VB_Name = "CroixFermetureFeuilleCalcul"


'désactiver la croix de fermeture des feuilles de calcul d'un classeur
'(supprime aussi les boutons minimiser et agrandir -> pas possible de
'désactiver la seule croix de fermeture)
'Attribute FeuillesSansCroixFermeture.VB_Description = "Macro enregistrée le 23/06/2002 par FS"
'Attribute FeuillesSansCroixFermeture.VB_ProcData.VB_Invoke_Func = " \n14"

Sub FeuillesSansCroixFermeture()
  ActiveWorkbook.Protect Structure:=False, Windows:=True
End Sub
 

Chris24

XLDnaute Impliqué
Bonjour

A adapté à votre application

VB:
'Empecher la fermeture d'excel

'dans le module ThisWorkbook:

Private Sub Workbook_BeforeClose(Cancel AS Boolean)
      Cancel = Not AutoriseFermeture
End Sub

'puis dans un module quelconque du classeur

Public AutoriseFermeture As Boolean
Sub Quitter()
AutoriseFermeture = True
Application.Quit
End Sub
 

Pounet95

XLDnaute Occasionnel
Bonjour,
Plutôt que de mettre en boîte et/ou ironiser , j'aimerais avoir une explication de ce que je n'ai pas compris. Et tout le monde en profiterais aussi, non ?
Et, pendant que j'y suis, tu n'aurais pas une proposition de solution pour "mon" problème avec les contrôles ImageList et ImageCombo ?
Merci
PS : j'ai peut-être mal compris ( encore et aussi ) l'humour ? Ne m'en veux pas , je suis un "vieux couillon" !
 

badraaliou4

XLDnaute Occasionnel
Bonjour @badraaliou4,

Ne sachant pas réellement ce que vous désirez faire, à tout hasard au cas où le nom de la feuille "login" comporterait une majuscule:
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
   If ActiveSheet.Name <> Sheets("login").Name Then Cancel = Not bye
   ThisWorkbook.Saved = True
End Sub
Bonjour,
Merci mais ce code ne marche pas avec mon Excel 2016
 

Pounet95

XLDnaute Occasionnel
Re,
1 Je n'ai copié que ce que j'avais,
2. Tout le monde en profiterait ( je corrige ma faute d'orthographe ), je parle des explications que tu aurais pu donner.
Ceci dit (écrit plutôt), restons cool (cf icône) effectivement.
 

Discussions similaires