VBA : ouverture plein écran + zoom ajustable

Bonjour tout le monde

J'aurais besoin d'un coup de main pour compléter mon code.

J'ai un fichier avec un seul onglet. Je veux qu'il s'ouvre en plein écran avec ajustement au contenu. Avec mon code ci-dessous, tout va bien quand je suis sur PC fixe mais quand je l'ouvre avec un laptop, la résolution n'est pas la même et le contenu déborde de l'écran... sauf qu'en plein écran, impossible de zoomer/dézoomer puisque pas d'affichage disponible de la barre de zoom.

Comment faire pour ajuster l'ouverture au contenu peu importe la résolution ? Ou est-il possible d'ajouter un bouton via vba reproduisant la barre de zoom / dézoom ?

Private Sub Workbook_Open()

Application.DisplayFullScreen = True

End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

Range("A:Z").Select

ActiveWindow.ScrollColumn = Selection.Column

ActiveWindow.ScrollRow = Selection.Row

ActiveWindow.Zoom = True

Range("A1").Select

End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)

Application.DisplayFullScreen = False

End Sub

Merci beaucoup

Bonjour,

Une autre façon de zoomer : maintient CTRL enfoncé et pousse la roulette de la souris vers le haut pour augmenter le zoom ... ou tire vers le bas ou diminuer le zoom.

Ceci est bon presque partout, Word, Excel, IE, FireFox, même ici sur ce forum

Gelinotte

Merci mais ce n'est pas une option dans mon cas car manipulation trop complexe pour ces utilisateurs...

Il me faut soit un système de bouton cliquable proposant le zoom/dézoom à l'écran, soit quelques lignes de code pour faire automatiquement adapter le contenu à l'ouverture du fichier selon la résolution de l'écran.

Bonjour,

Avec des zooms entièrement automatique à l'activation de la feuille.

Le plein écran est désactivé à la fermeture ou à l'enregistrement.

Voir si ça convient comme début .

Pour les boutons cliquables, il faudrait les ajouter à chacune des feuilles.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayFullScreen = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.DisplayFullScreen = True
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim DerLig As Integer
Dim DerCol As Integer

Range("A1").Select
'DerLig = Range("A" & Rows.Count).End(xlUp).Row
DerCol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column

Range(Cells(, 1), Cells(, DerCol)).Select 'à préciser
ActiveWindow.Zoom = True
Application.DisplayFullScreen = True
Range("A1").Select
End Sub

Gelinotte

Merci Gelinotte !

Là tel quel ca ne fonctionne pas. Il est écrit "à préciser", je dois modifier quelque chose ? Mon contenu à dimensionner va de la colonne A à Y.

Merci

bonjour le fil

voici se ce j'utilise pour qu'une feuille soit bloqué au zoom voulu

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'ZOOM / MAINTENIR LE ZOOM A 82%
    If ActiveWindow.Zoom < 82.5 Then
        ActiveWindow.Zoom = 82.5
    End If
    If ActiveWindow.Zoom > 82.5 Then
        ActiveWindow.Zoom = 82.5
    End If
End Sub

cordialement

Ca ne fonctionne pas car c'est un problème de résolution. Si je bloque le zoom sur une valeur, disons 80, ce sera parfait sur mon ordi fixe mais le contenu sera rogné sur un laptop car résolution différente donc affichage différent. Mais merci quand même, je retiens le code

Bonjour,

As-tu regardé mon code de Hier, 09:39.

Il devrait s'adapter à n'importe quelle résolution et à n'importe quel nombre de colonne.

À moins qu'il ait une erreur.

Gelinotte

Hello Gelinotte,

j'ai essayé mais il doit manquer un truc car j'ai le même problème qu'avec mon code de départ = ouverture en plein écran ok ajusté au nombre de colonnes mais quand j'ouvre avec mon laptop, il ne s'adapte pas à la résolution et le contenu sort de l'écran... : /

Pour que ca revienne à la bonne taille, je dois ouvrir un onglet puis revenir sur l'onglet de départ. Là c'est ok. J'enregistre. J'ouvre avec mon ordi fixe et là c'est le problème inverse, le contenu est à la résolution du laptop. J'ouvre un autre onglet, je reviens sur l'onglet initial et hop, c'est à nouveau à la bonne taille.

Mais il ne veut pas s'adapter à chaque écran dès l'ouverture....

Bonjour,

Le problème provient de Workbook_SheetActivate. À l'ouverture, le feuille est déjà sélectionnée, le code n'opère pas.

Pour contourner, dans "ThisWorkbook", ajoute ceci ...

Ça va faire un changement de feuille et le retour.

Ainsi, Workbook_SheetActivate va exécuter son code.

Private Sub Workbook_Open()
   Dim NomFeuil1 As String
   Dim NomFeuil2 As String

   On Error Resume Next
   NomFeuil1 = ActiveSheet.Name
   ActiveSheet.Next.Select
   NomFeuil2 = ActiveSheet.Name
   If NomFeuil1 = NomFeuil2 Then
      ActiveSheet.Previous.Select
      ActiveSheet.Next.Select
   Else
      ActiveSheet.Previous.Select
   End If

End Sub

Gelinotte

Rechercher des sujets similaires à "vba ouverture plein ecran zoom ajustable"