IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Limiter la zone d'affichage d'une feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    apt
    apt est déconnecté
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Par défaut
    Bonsoir à tous,

    Pour limiter la zone d'affichage d'une feuille, j'ai utilisé ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub Worksheet_Activate()
        Dim LastLgA As Long, endRowA As Long
        Dim Ws As Worksheet
        With Me
            .Range(Columns("G"), Columns("G").End(xlToRight)).EntireColumn.Hidden = True
            .Range(Rows("11"), Rows("11").End(xlDown)).EntireRow.Hidden = True
            .ScrollArea = "A1:F10"
            .Range("A1:F10").Select
     
            ActiveWindow.DisplayHeadings = False
            ScreenResolution
            Application.Goto Range("A1"), True
            .Range("12:12").Select
            ActiveWindow.FreezePanes = True
        End With
    End Sub
    Dans un module fe feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Option Explicit
     
    Declare Function GetSystemMetrics32 Lib "user32" Alias "GetSystemMetrics" _
                                        (ByVal nIndex As Long) As Long
     
    Function DisplayVideoResolution() As String
        DisplayVideoResolution = GetSystemMetrics32(0) & " x " & _
                                 GetSystemMetrics32(1)
    End Function
     
    Sub ScreenResolution()
        Dim Zoom&
        On Error Resume Next
        If DisplayVideoResolution = "1024 x 768" Then Zoom = 210
        If DisplayVideoResolution = "800 x 600" Then Zoom = 168
        If DisplayVideoResolution = "640 x 480" Then Zoom = 105
     
        Sheets("Feuil1").Activate
        ActiveWindow.Zoom = Zoom
    End Sub
    Mais je n'arrive pas encore à avoir ce que j'espère.

    Merci.

    Bonsoir,

    - J'aimerais figer la zone d'affichage ainsi que les barres de défilement.

    - Tester si le code est bien adapter pour tous les résolutions.

    Merci.

  2. #2
    apt
    apt est déconnecté
    Membre éclairé
    Inscrit en
    Mai 2002
    Messages
    867
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 867
    Par défaut
    Bonjour,

    J'ai essayé ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Workbook_Open()
        Range(Columns("G"), Columns("G").End(xlToRight)).EntireColumn.Hidden = True
        Range(Rows("11"), Rows("11").End(xlDown)).EntireRow.Hidden = True
        ActiveWindow.DisplayHeadings = False
        ActiveWindow.DisplayHorizontalScrollBar = False
        ActiveWindow.DisplayVerticalScrollBar = False
        Application.ScreenUpdating = False
        Feuil1.Activate
        Feuil1.Range("A1:F8").Select
        ActiveWindow.Zoom = True
        Feuil1.ScrollArea = "A1:F1"
        Range("a11").Select
        Application.ScreenUpdating = False
    End Sub
    Mais la zone de travail ne veut pas se réajuster à la fenêtre active (Il y a toujours un espace visuel)...

    Alors j'ai modifié le code comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Workbook_Open()
        With Sheets("Feuil1")
            ActiveWindow.DisplayHeadings = False
            ActiveWindow.DisplayHorizontalScrollBar = False
            ActiveWindow.DisplayVerticalScrollBar = False
            Application.ScreenUpdating = False
            .ScrollArea = "A1:I1"
            .Range("A20").Select
            Application.ScreenUpdating = True
        End With
    End Sub
    Mais reste le souci des barres de défilements qui sont désactivées dans toutes les feuilles du classeur au lieu de la première feuille seulement.

    Une piste ?

    Merci.

Discussions similaires

  1. [D6] Affichage d'une feuille Excel dans TProfGrid
    Par jstauffer dans le forum Composants VCL
    Réponses: 1
    Dernier message: 17/10/2007, 16h08
  2. affichage d'une feuille avec décalage
    Par potili2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/08/2007, 13h27
  3. [VBA E] affichage d une feuille a partir d un userform
    Par patbou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/03/2007, 21h55
  4. Affichage d'une feuille fille
    Par rphenix dans le forum WinDev
    Réponses: 5
    Dernier message: 16/01/2007, 15h41
  5. [VB6]affichage d'une feuille modale / message d'erreur 400
    Par getea85 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/01/2006, 18h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo