Vba pour afficher une feuil excel en plein ecran [Résolu/Fermé]

Signaler
Messages postés
108
Date d'inscription
mercredi 26 août 2009
Statut
Membre
Dernière intervention
25 octobre 2019
-
achgel
Messages postés
108
Date d'inscription
mercredi 26 août 2009
Statut
Membre
Dernière intervention
25 octobre 2019
-
Bonjour,


J'utilise la macro suivante, que j'ai trouver sur net, pour afficher une feuil excel en plein écran,
Le problème c'est que chaque fois que je change d’écran je suis obliger de paramétrer son affichage.

Est ce que il y'a un moyen d'avoir une macro qui pourra gérer tous les types d’écrans.

Merci d’avance


Option Explicit 
'déclarer L'API 
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long 
Dim Largeur As Integer, Hauteur As Integer 
'Macro à mettre dans un module, et à appeler à l'ouverture du classeur 
Sub choixzoom() 
Dim Largeur As Integer, Hauteur As Integer 

Largeur = GetSystemMetrics(0) 'récupère la largeur de l'écran en pixel 
Hauteur = GetSystemMetrics(1) ' récupère la longueur de l'écran en pixel 

If Largeur = 1600 And Hauteur = 900 Then 
ActivZoom (125) 'appliquer le poucentage voulu 

ElseIf Largeur = 1280 And Hauteur = 1024 Then 
ActivZoom (100) 'appliquer le poucentage voulu 

ElseIf Largeur = 1152 And Hauteur = 864 Then 
ActivZoom (80) 
ElseIf Largeur = 1024 And Hauteur = 768 Then 
ActivZoom (73) 
Else 
ActivZoom (90) ' Mon fichier est visible à 90% pour toutes les autres résolutions d'écran 
End If 
End Sub 



3 réponses

Messages postés
6628
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
6 avril 2020
477
Bonjour,

Avec un UserForm et 2 commandbutton
essaie ceci à adapter :


Option Explicit
Private Declare Function FindWindowA Lib "user32" _
  (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function GetWindowLongA Lib "user32" _
  (ByVal hWnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "user32" _
  (ByVal hWnd As Long, ByVal nIndex As Long, _
  ByVal dwNewLong As Long) As Long
'plein écran
Private Sub CommandButton1_Click()
Dim hWnd As Long
  hWnd = FindWindowA(vbNullString, Application.Caption)
  SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
'plein écran
Application.DisplayFullScreen = True
 'Masquer le quadrillage
    ActiveWindow.DisplayGridlines = False
' Masquer les en-têtes
    ActiveWindow.DisplayHeadings = False
' Masquer les barres de défilement
   ActiveWindow.DisplayHorizontalScrollBar = False
    ActiveWindow.DisplayVerticalScrollBar = False
' Masquer les onglets de classeur
    ActiveWindow.DisplayWorkbookTabs = False
End Sub
'rétablir
Private Sub CommandButton2_Click()
Dim hWnd As Long
  hWnd = FindWindowA(vbNullString, Application.Caption)
  SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H80000
'plein écran
Application.DisplayFullScreen = False
'Masquer le quadrillage
    ActiveWindow.DisplayGridlines = True
' Masquer les en-têtes
    ActiveWindow.DisplayHeadings = True
' Masquer les barres de défilement
   ActiveWindow.DisplayHorizontalScrollBar = True
    ActiveWindow.DisplayVerticalScrollBar = True
' Masquer les onglets de classeur
    ActiveWindow.DisplayWorkbookTabs = True
End Sub
achgel
Messages postés
108
Date d'inscription
mercredi 26 août 2009
Statut
Membre
Dernière intervention
25 octobre 2019
1
Bonjour cs_Le Pivert

Content de vous retrouver sur CCM
Et merci pour votre réponse

Au fait j'aimerais bien savoir si je pourrais avoir un affichage plein écran sans passer par des commandbutton.
Messages postés
6628
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
6 avril 2020
477
Mettre dans un module:


Option Explicit
Private Declare Function FindWindowA Lib "user32" _
  (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function GetWindowLongA Lib "user32" _
  (ByVal hWnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "user32" _
  (ByVal hWnd As Long, ByVal nIndex As Long, _
  ByVal dwNewLong As Long) As Long
  Dim hWnd As Long
'plein écran
 Sub pleinecran()
hWnd = FindWindowA(vbNullString, Application.Caption)
Application.DisplayAlerts = False
  SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
'plein écran
Application.DisplayFullScreen = True
 'Masquer le quadrillage
    ActiveWindow.DisplayGridlines = False
' Masquer les en-têtes
    ActiveWindow.DisplayHeadings = False
' Masquer les barres de défilement
   ActiveWindow.DisplayHorizontalScrollBar = False
    ActiveWindow.DisplayVerticalScrollBar = False
' Masquer les onglets de classeur
    ActiveWindow.DisplayWorkbookTabs = False
    Application.DisplayAlerts = True
End Sub
'rétablir
 Sub retablir()
 Application.DisplayAlerts = False
hWnd = FindWindowA(vbNullString, Application.Caption)
  SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H80000
'plein écran
Application.DisplayFullScreen = False
'Masquer le quadrillage
    ActiveWindow.DisplayGridlines = True
' Masquer les en-têtes
    ActiveWindow.DisplayHeadings = True
' Masquer les barres de défilement
   ActiveWindow.DisplayHorizontalScrollBar = True
    ActiveWindow.DisplayVerticalScrollBar = True
' Masquer les onglets de classeur
    ActiveWindow.DisplayWorkbookTabs = True
    Application.DisplayAlerts = True
End Sub


mettre dans ThisWorkbook:

Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
retablir
End Sub
Private Sub Workbook_Open()
pleinecran
End Sub


Pour fermer le classeur clic droit sur la feuille: Fermer le plein écran

Voilà
achgel
Messages postés
108
Date d'inscription
mercredi 26 août 2009
Statut
Membre
Dernière intervention
25 octobre 2019
1
Bonjour cs_Le Pivert

Merci pour votre aide

j'ai utiliser votre macro pour afficher le plain écran

c'est vraiment très gentille de votre part
Messages postés
6628
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
6 avril 2020
477
Tu peux aussi attribuer un raccourci clavier à tes macro.

voir ici:

http://www.info-3000.com/vbvba/raccourciclavier.php