Macro affichage sortir du plein écran
Bonjour à tous,
J'ai besoin de votre aide pour faire fonctionner une macro dans un classeur. J'ai une macro qui ouvre l'appli en plein écran, mais à la fermeture, pas moyen de revenir en mode normal, et c'est primordial sinon tous les autres docs excel qu'on ouvre après sont en plein écran et ça, ça va être un vrai souci pour ceux qui vont utiliser l'appli (ils sont nombreux et ne maitrisent pas du tout Excel).
Donc, J'ai essayé:
- Senkeys "{esc}": ça ne marche pas
- Application.DisplayFullScreen = False: ça marche pas non plus
- Et même le code pour laisser un petit "Wait" avant la fermeture (histoire que le code ne se déroule pas trop vite et que toutes les étapes soient prises en compte) ne marche pas!
Voici un extrait du code à la fermeture:
Dans ThisWorkbook:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim hwnd As Long
hwnd = FindWindowA(vbNullString, Application.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) Or &H80000
Call Mise_en_formeS
Application.DisplayFullScreen = False
Temps = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) = 60)
Application.Wait Temps
Application.Quit
End Sub
-Dans 1 module:
Sub Mise_en_formeS()
Application.ScreenUpdating = False
With Application
.DisplayFullScreen = False
.DisplayFormulaBar = True
.DisplayStatusBar = True
.ShowStartupDialog = True
.ShowWindowsInTaskbar = True
End With
With ActiveWindow
.DisplayHeadings = True
.DisplayHorizontalScrollBar = True
.DisplayWorkbookTabs = True
End With
For Each Feuille In Worksheets
Feuille.Activate
ActiveWindow.DisplayHeadings = True
Next Feuille
Application.ScreenUpdating = True
End Sub
Aidez moi s'il vous plait ! merciiii.
Edit Dan : supprimé "Urgent" dans le titre du sujet. Merci de lire les règles du forum
Bonsoir,
Merci d'éviter les mots "urgent" et autres.. --> https://forum.excel-pratique.com/annonces/explications-et-regles-a-respecter-t13.html
Ne jamais utiliser application.quit qui est une instruction fermant purement excel. Bonjour les dégats s'il y a un fichier ouvert n'ayant rien avoir avec l'application en cours....
en entête dans thisworkbook, il devrait y avoir un "Private declare function....". on suppose qu'il y est.
Dans le Call Mise en formeS il y a déjà "Application.DisplayFullScreen = False". Pas besoin de le remettre.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim hwnd As Long
hwnd = FindWindowA(vbNullString, Application.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) Or &H80000
Call Mise_en_formeS
Temps = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) = 60)
Application.Wait Temps
End SubAmicalement
bonjour,
Moi j'ai trouvé ça;
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.WindowState = xlNormal
End Sub
Cordialement
Merci beaucoup pour vos réponses! Désolé pour le mot "urgent" mais sincèrement ça l'était pour moi. Je ne voulais mettre la pression à personne. Pour " application. Quit", je l'ai mis parce que je ne veux pas que les personnes puissent enregistrer les modifications. Par contre, c'est vrai que si on a un autre classeur ouvert, ça ferme tout. Y a t'il un moyen de fermer que l'appli et pas excel? Je vais tester vos trucs et je vous tiens au courant. Merci encore pour vos reponses
Bonjour à tous.
Voici le code qui marche nickel et qui permet de fermer l'application et de rouvrir en suivant un document excel en mode normal et non en mode plein écran (par contre il faut en effet changer le "application. quit" par une autre fermeture qui ne ferme pas Excel mais simplement le classeur en cours sans demander de sauvegarder).
Merci encore à tous!
Sub Macro1()
' Macro1 Macro
'
Application.DisplayFullScreen = False
With Application
.Iteration = False
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
Application.Quit
ActiveWindow.Close SaveChanges:=False
End Sub