Action sous condition

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

Scoobidoo

XLDnaute Occasionnel
Bonjour à tous, le forum,

J'ai un code d'enregistrement automatique de mon fichier dans l'évènement Workbook Before Close qui marche bien.
Je voudrais l'améliorer en y ajoutant la condition suivante: Si le fichier est ouvert en lecture seule alors on ferme sans enregistrement.
Simple pour moi d'écrire en français mais j'ai besoin de vous car je cale pour l'écrire en Vba.
Je vous remercie d'avance pour votre éclairage.
Au plaisir de vous lire.

Scoobidoo
 
Bonsoir Scoobidoo

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ActiveWorkbook.ReadOnly Then
Application.DisplayAlerts = False
Application.Quit
Else
Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.Quit
End If
End Sub
 
Dernière édition:
Bonjour Lone Wolf, le Forum,

C'est super et tellement simple que j'ai une fois de plus un peu honte. Mais je progresse lentement et régulièrement en lisant bon nombre de message sur ce forum.
Merci à toi pour ton aide et bonne journée à tous.

Scoobidoo
 
Bonjour le forum

Au cas d'autres classeurs sont ouverts, mieux vaut ne pas fermer Excel mais le classeur qui contient la macro.
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ActiveWorkbook.ReadOnly Then
Application.DisplayAlerts = False
ActiveWorkBook.Close False
Else
Application.DisplayAlerts = False
ActiveWorkbook.Close True
End If
End Sub
 
salut

En raccourci avec les variables booléennes (à True ou False)

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Application.DisplayAlerts = Not ActiveWorkbook.ReadOnly
  ActiveWorkbook.Close = Not ActiveWorkbook.ReadOnly
End Sub

Intéressant à connaître :
Avec A=B=C, A est vrai si B=C sinon A est Faux
Avec A=B=not C, A est vrai si B<>C sinon A est Faux (équivalent à : A est faux si B=C sinon A est vrai)😵
 
- 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

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
430
Réponses
7
Affichages
771
Retour