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 :

Ajuster à l'écran


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Points : 172
    Points
    172
    Par défaut Ajuster à l'écran
    Bonjour à nouveau.

    Est-il possible de faire en sorte que dans une commande vba que la feuille excel soit ajustée à la largeur de l'écran automatiquement. Les collones à droite de mon questionnaire (qui a des collones de non masquées jusqu'à "R") sont tous masquées(S à IV). J'ai donc une portion en gris si mon zoom est à 75% et mon questionnaire est trop large si le zoom est à 100%.

    Merci à l'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 242
    Points : 484
    Points
    484
    Par défaut
    Bonjour dlight,

    As-tu essayé en ajustant le zoom à la sélection (sélection des colonnes A à R puis menu "Affichage" > "Zoom" > "Ajusté à la sélection") ?

    Voici un exemple de code correspondant (en supposant que la feuille contenant ton questionnaire soit la feuille active)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Columns("A:R").Select
        ActiveWindow.Zoom = True

  3. #3
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Bonjour,

    Une petite précision sans parler de code :

    J'ai donc une portion en gris si mon zoom est à 75% et mon questionnaire est trop large si le zoom est à 100%.
    Dans la fenêtre zoom tu peux taper ce que tu veux par exemple 80.


    un exemple de code :


  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Points : 364
    Points
    364
    Par défaut
    Bonjour,
    il y a quelque temps j'avais été confronté à ce problème et j'avais trouvé sur le net du code bien pratique.

    Le code suivant crée des fonctions capables de calculer la résolution de l'écran. Pas besoin de le comprendre, tu peux le mettre tel quel dans un module à part par exemple (pour que ce soit plus clair) :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Private Declare Function GetSystemMetrics Lib "user32" _
    (ByVal nIndex As Long) As Long
    Private Const SM_CXSCREEN = 0 'Screen width
    Private Const SM_CYSCREEN = 1 'Screen height
     
    Private Declare Function GetDC Lib "user32" _
    (ByVal hWnd As Long) As Long
    Private Declare Function GetDeviceCaps Lib "gdi32" _
    (ByVal hDC As Long, ByVal nIndex As Long) As Long
    Private Declare Function ReleaseDC Lib "user32" _
    (ByVal hWnd As Long, ByVal hDC As Long) As Long
    '
    Private Const LOGPIXELSX = 88 'Pixels/inch in X
    '
    'A point is defined as 1/72 inches
    Private Const POINTS_PER_INCH As Long = 72
     
    'The width of the screen, in pixels
    Public Function ScreenWidth() As Long
    ScreenWidth = GetSystemMetrics(SM_CXSCREEN)
    End Function
     
    'The height of the screen, in pixels
    Public Function ScreenHeight() As Long
    ScreenHeight = GetSystemMetrics(SM_CYSCREEN)
    End Function
     
    'The size of a pixel, in points
    Public Function PointsPerPixel() As Double
    Dim hDC As Long
    Dim lDotsPerInch As Long
    hDC = GetDC(0)
    lDotsPerInch = GetDeviceCaps(hDC, LOGPIXELSX)
    PointsPerPixel = POINTS_PER_INCH / lDotsPerInch
    ReleaseDC 0, hDC
    End Function
    Puis dans mon code j'appelle la fonction qui donne la largeur de l'écran, seule dimension qui m'intéresse dans mon cas. J'avais déterminé que le zoom devait être de 80% avec une largeur de 1024 pixels :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        'comme mon zoom est paramétré pour 1024 pixels en largeur, on l'adapte à la résolution de l'utilisateur :
        aZoom = 80
        ActiveWindow.Zoom = Int(aZoom / 1024 * ScreenWidth)
    Voilà j'espère que ça répond à ton problème.

    PS : je précise que ce code n'est utile que s'il doit être utilisé par divers utilisateurs avec des résolutions d'écran variables. Sinon évidemment c'est se compliquer la vie pour rien

Discussions similaires

  1. [AC-2010] Différence entre Taille ajustée et Ajuster à l'écran
    Par vandrie dans le forum IHM
    Réponses: 2
    Dernier message: 09/06/2014, 22h57
  2. Réponses: 6
    Dernier message: 04/07/2006, 00h34
  3. CSS: image s'ajustant a la hauteur de l'écran
    Par Sylvain245 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 10/02/2006, 16h53
  4. Ajustement d'écran
    Par marsupilami34 dans le forum Langage
    Réponses: 12
    Dernier message: 06/08/2005, 10h09
  5. Ajustement d'une forme sur tout l'écran
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 21/06/2005, 09h49

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