Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 ThisWorkbook.Saved et Application.DisplayFullScreen = false

pat66

XLDnaute Impliqué
Bonjour le Forum,

J'ai un classeur à qui je demande de s'ouvrir en grand écran avec Application.DisplayFullScreen = True

Ce classeur ne peut être enregistré car je ne souhaite pas que l'on ne puisse le modifier, voila la macro que j'utilise
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ret As Integer
ret = MsgBox("Souhaitez vous fermer ce classeur ?", vbYesNo + vbInformation)
If ret = vbNo Then
Cancel = True
Else
ThisWorkbook.Saved = True
End Sub

Le problème est que lorsque je le ferme et que j'ouvre un autre classeur, ce dernier s'affiche aussi en plein écran

Comment peut on quitter le classeur sans enregistrer les modifications et faire en sorte que le classeur que j'ouvre juste après soit avec un affichage normal

Merci pour votre aide

Pat66
 
Dernière édition:
Solution
Bonsoir, voici la solution à mon problème grâce à votre aide

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim ret As Integer
    ret = MsgBox("Souhaitez vous fermer ce classeur ?", vbYesNo + vbInformation)
    If ret = vbNo Then
        Cancel = True
    Else
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.DisplayAlerts = False
    Application.CommandBars("Ply").Enabled = -True
    Application.CommandBars("Cell").Enabled = True
    Application.CellDragAndDrop = True
    Application.DisplayFullScreen = False
    Application.ScreenUpdating = False
    Application.EnableEvents = True
    Application.DisplayAlerts = True
    ThisWorkbook.Saved = True
    End If

Merci pour votre...

patricktoulon

XLDnaute Barbatruc
bonjour
application.(property quelle qu'elle soit) fonctionne pour toute l'application et donc tout les classeur
il te faut donc la remettre a false juste avant de fermer le classeur
cela dit il suffit d'appuyer sur ESC pour revoir le ruban ou cliquer sur le dernier bouton du menu contextuel des cellule "fermer le plein ecran " pour retrouver le ruban
donc si tu souhaite vraiment empêcher quiconque de modifier le fichier tu n'a pas la bonne méthode
 

Phil69970

XLDnaute Barbatruc
Bonjour Pat66, le forum

1)Il manque dans ton code un end if
2)Il faut quand on touche au réglage de l'utilisateur remettre les anciens réglages en partant
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim ret As Integer
   ret = MsgBox("Souhaitez vous fermer ce classeur ?", vbYesNo + vbInformation)
   If ret = vbNo Then
       Cancel = True
   Else
       ThisWorkbook.Saved = True 

  '**************Il manque ici
   End if
  '*************
'Et il faut remettre l'écran comme il était en sortant
Application.DisplayFullScreen = false
End Sub

@Phil69970
 

pat66

XLDnaute Impliqué
Bonjour Yeahou,
Bonjour PatrickToulon
Bonjour Phil 69970

voila ce que j'ai écris mais cela ne fonctionne toujours pas que je mette
"Application.DisplayFullScreen = False" juste avant le ThisWorkbook.Saved = True ou juste après,
le classeur suivant s'ouvre toujours en plein écran et pour info j'ai désactivé la touche ESC et bien d'autres raccourcis clavier

Et en l'écrivant ainsi, cela ouvre la boite de dialogue "Voulez vous enregistrer les modifications"
ThisWorkbook.Saved = True
End If
Application.DisplayFullScreen = False
End sub

Une autre idée peut être pour fermer le classeur sans possibilité d'enregistrer les modifications et faire en sorte que le prochain classeur s'ouvre normalement ?

En tout cas merci pour votre aide
 

pat66

XLDnaute Impliqué
Patrick,
comme précisé, j'ai désactivé pas mal de raccourcis clavier dont ESC, mais pourrais tu m'en dire plus sur l'autre façon d'empêcher la modification du fichier ?

merci
 

patricktoulon

XLDnaute Barbatruc
bonjour
analyse cela tranquillement
essaie de chopper la fenetre par la caption pour la sortir du plein écran
tu a deux bouton fullscreen ou comme l’état précédent
 

Pièces jointes

  • fullscreen X.xlsm
    25.7 KB · Affichages: 18

pat66

XLDnaute Impliqué
Bonsoir, voici la solution à mon problème grâce à votre aide

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim ret As Integer
    ret = MsgBox("Souhaitez vous fermer ce classeur ?", vbYesNo + vbInformation)
    If ret = vbNo Then
        Cancel = True
    Else
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.DisplayAlerts = False
    Application.CommandBars("Ply").Enabled = -True
    Application.CommandBars("Cell").Enabled = True
    Application.CellDragAndDrop = True
    Application.DisplayFullScreen = False
    Application.ScreenUpdating = False
    Application.EnableEvents = True
    Application.DisplayAlerts = True
    ThisWorkbook.Saved = True
    End If

Merci pour votre aide
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…