CathyAstuce

VBA

GEMCCAP CONSEIL INFORMATIQUE BUREAUTIQUE
Formation - Conception Sites Internet
Applications Informatiques Personnalisées
Communauté partenaire Microsoft

LES FENÊTRES D'EXCEL

  La collection Propriétés   Méthodes 

Remonter I. La collection

Lorsqu'elle est appliquée à l'objet Application, elle représente toutes les fenêtres ouvertes dans Excel, lorsqu'elle est appliquée à l'objet Workbook, elle représente toutes les fenêtre ouvertes du classeur.
Windows(1) représente toujours la fenêtre active.
Pour créer une nouvelle fenêtre, utilisez la méthode NewWindow. La ligne suivante ouvre une nouvelle fenêtre pour le classeur actif :
ActiveWorkbook.NewWindow

Remonter II. Propriétés

Je ne vous cite ici que quelques propriétés très utile.

  • La propriété Count vous indique le nombre de fenêtre ouverte :
    Sub Nb_Fenetre()
       Dim Nb As Byte

       For Nb = 1 To Windows.Count
          MsgBox Windows(Nb).Caption
       Next
    End Sub
  • La propriété Caption permet de renommer le titre de la fenêtre, l'exemple suivant renomme la fenêtre active :
    ActiveWorkbook.Windows(1).Caption = "Ma fenêtre"
  • Les propriétés Displayxxx permettent de paramétrer la fenêtre comme dans la boîte de dialogue Option, elles prennent la valeur True si elle est active et False dans le cas contraire :
    Si la valeur est True La fenêtre affiche
    DisplayFormulas les formules
    DisplayGridlines la grille
    DisplayHeadings les en-têtes de ligne et de colonne
    DisplayHorizontalScrollBar la barre de défilement horizontale
    DisplayVerticalScrollBar la barre de défilement verticale
    DisplayOutline les symboles du plan
    DisplayWorkbookTabs les onglets du classeur
    DisplayZeros les valeurs zéro
  • Pour empêcher le redimensionnement de la fenêtre par l'utilisateur, attribuez la valeur False à la propriété EnableResize :
    ActiveWorkbook.Windows(1).EnableResize = True
    Attention, la fenêtre ne doit pas agrandit, mais réduite avant l'utilisation de cette propriété.
  • Pour maîtriser la hauteur et la largeur des fenêtres vous pouvez utiliser au choix les propriétés Height et Width, qui vous permet de lire ou attribuer la hauteur ou la largeur d'une fenêtre. Mais vous avez également les propriétés UsableHeight et UsableWidth qui vous donnent la hauteur maximale ou largeur maximale de l'espace disponible pour la fenêtre dans l'application Excel. 
  • Pour définir ou lire l'état de la fenêtre, utilisez la propriété WindowState. Elle peut prendre les 3 valeurs suivantes :
    valeur état
    xlMaximized agrandit à son maximum
    xlMinimized réduite en bouton
    xlNormal normal, la fenêtre peut ainsi être redimensionnée

L'exemple suivant vous montre comment utiliser ces 3 dernières propriétés, il définit l'état normal et dimensionne la fenêtre de tel façon qu'elle prenne toute la place disponible dans la fenêtre d'Excel :

Sub Ma_Fenetre()
      With ActiveWindow
          .WindowState = xlNormal
          .Top = 1
          .Left = 1
          .Height = Application.UsableHeight
          .Width = Application.UsableWidth
      End With
End Sub

  • La propriété Zoom permet de réduire ou agrandir uniquement la feuille active de la fenêtre désignée. Vous lui appliquez soit une valeur entière représentant le pourcentage (100 = 100%) ou la valeur True pour ajuster la fenêtre à la sélection.
    ActiveWindow.Zoom = 400  ' agrandit à 400 %
    ActiveWindow.Zoom = 50    'réduit à 50 %

    Ou sélectionnez une plage puis exécutez la ligne suivante :
    ActiveWindow.Zoom = True  ' agrandit ou réduit à la sélection

Remonter III. Méthodes

Les méthodes les plus utilisées sont les suivantes :

  • Activate pour placer la fenêtre au premier plan.
  • Close pour fermer une fenêtre
  • NewWindow pour créer une nouvelle fenêtre.

L'exemple suivant crée une nouvelle fenêtre, double de la fenêtre active, active la première fenêtre et ferme la nouvelle fenêtre :

Sub Nouvelle_Fenetre()
     ActiveWindow.NewWindow
     Windows(2).Activate
     MsgBox "Vous êtes dans la feuille 1 et la feuille 2 va être fermée"
     Windows(2).Close
End Sub

AccueilDébut de la page