Aide pour Macro "Resolution d'écran" et Zoom

doublenico

XLDnaute Junior
Bonjour à tous,

Au boulot, tous les ordinateurs jusque là étaient en 1024 par 768 mais depuis peu, de nouveaux postes arrivent en 1280 par 800.

Aujourd'hui, j'ai une macro qui installe directement l'équivalent d'un bandeau (cartouche) ou l'on trouve le nom du document, sa date de mise à jour, fréquence de mise à jour, entité, tél....sur tous mes onglets avec un onglet pour mettre à jour l'ensemble des bandeaux sur chaque onglet.

Ce bandeau s'affiche parfaitement avec les postes en 1024 (ca prend pile poil la largeur max de l'écran lorsqu'un excel s'ouvre, pas barre de de défilement horizontale).

Or avec les nouveaux postes et la nouvelle résolution de 1280, la taille de mon bandeau n'occupe plus toute la largeur et les utilisateurs vont donc naturellement profiter des colonnes et lignes supplémentaire à leur disposition pour y mettre des informations et lorsque qu'un utilisateur en 1024 consultera un excel fait à partir d'un 1280, ils auront des barres de défilements...

Je souhaitais donc via une macro récuperer la résolution du poste informatique et :
- si c'est du 1024, pas de retouche
- si c'est du 1280, jouer sur l'affichage ou zoom d'excel pour que l'ecran affiche les mêmes choses qu'un 1024.

Je me demandais si on pouvez faire ce genre de truc facilement avec une macro ou s'il fallait utiliser les API Windows. Je rappele que je ne veux en aucun cas toucher à la résolution du poste utilisateur (j'ai vu en faisant des recherches sur ce forum qu'il y avait des sujets traitant des API et qu'il etait fortement recommandé de ne pas changer la résolution d'écran).

Mon message est plutot long, merci de m'avoir lu et j espere avoir été assez clair.

Merci d'avance pour votre aide.
 

WDAndCo

XLDnaute Impliqué
Re : Aide pour Macro "Resolution d'écran" et Zoom

Bonjour le Forum

Voici une petite macro qui va bien ! Tu ne change que la colonne I tu l'adapte a ton cas.

Sub LargeurAuto()
'
' LargeurAuto Macro
' Macro enregistrée le 06/04/2007 par Dominique W
'

'
Columns("A:I").Select
ActiveWindow.Zoom = True
End Sub

WD
 

doublenico

XLDnaute Junior
Re : Aide pour Macro "Resolution d'écran" et Zoom

WDAndCo à dit:
Bonjour le Forum

Voici une petite macro qui va bien ! Tu ne change que la colonne I tu l'adapte a ton cas.

Sub LargeurAuto()
'
' LargeurAuto Macro
' Macro enregistrée le 06/04/2007 par Dominique W
'

'
Columns("A:I").Select
ActiveWindow.Zoom = True
End Sub


WD
Merci mais le soucis c'est que l'utilisateur peut elargir certaines colonnes, je ne peux donc pas partir sur les colonnes mais plus sur des pixels et/ou résolution d ecran
 

pierrejean

XLDnaute Barbatruc
Re : Aide pour Macro "Resolution d'écran" et Zoom

l'objectif n'est pas de modifier la macro OK

mais peut-etre que pour en modifier le resultat c'est obligatoire !!

l'olgorithme qui me vient a l'esprit est du genre

quel est la resolution d'ecran ?

si 1024 largeur bandeau X points

si 1280 largeur bandeau X x 1280 / 1024
 

pierrejean

XLDnaute Barbatruc
Re : Aide pour Macro "Resolution d'écran" et Zoom

re
avec l'aide obtenue ici:

Ce lien n'existe plus

et pour repondre a la demande telle que tu l'as formulée:

Code:
Option Explicit
Public 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 Const HORZRES As Long = 8

Sub resolution()
Dim hdc As Long
Dim currHRes As Long
hdc = GetDC(0)
currHRes = GetDeviceCaps(hdc, HORZRES)
If currHRes = 1024 Then
ActiveWindow.Zoom = 100
Else
ActiveWindow.Zoom = 125
End If
End Sub
 

Discussions similaires

Réponses
2
Affichages
727

Statistiques des forums

Discussions
314 654
Messages
2 111 595
Membres
111 211
dernier inscrit
christophe.saillant