Modifier les paramêtres d'affichage

P

Pierrot

Guest
Bonsoir à tous

J'aurais voulu savoir si il est possible lorsqu'on lance un programme réalisé sous excel, de modifier les paramêtres d'affichage de windows, c'est à dire de passer de 800*600 en 1024*768. Autrement je rencontre un problème d'affichage de mon userform qui est prévu pour du 1024, et si on est en 800*600, il ne s'affiche que partiellement.

Merci pour vos réponse.

Pierrot.
 
M

Myta

Guest
Salut Pierrot et le Forum

Regarde avec cette macro que @Thierry nous a déjà offerte.

Option Explicit
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Const SM_CXSCREEN = 0 ' Largeur de l'écran
Const SM_CYSCREEN = 1 ' Hauteur de l'écran

Sub Taille()
Dim XVal As Long, YVal As Long
Dim Resolution As String
Dim ZoomZoom As Integer
YVal = GetSystemMetrics(SM_CYSCREEN)
XVal = GetSystemMetrics(SM_CXSCREEN)
Resolution = XVal & " x " & YVal
On Error GoTo Message

If Resolution = "1600 x 1200" Then ZoomZoom = 160 ' Testé sur Catho 19" ok
If Resolution = "1280 x 1024" Then ZoomZoom = 130 'Testé sur Catho 19" ok
If Resolution = "1280 x 960" Then ZoomZoom = 130 ' 'Testé sur Catho 17" ok
If Resolution = "1280 x 720" Then ZoomZoom = 130 'non testé....???
If Resolution = "1152 x 864" Then ZoomZoom = 115 'Testé sur Catho 17" ok
If Resolution = "1024 x 768" Then ZoomZoom = 105 'Testé sur Catho 17" ok
If Resolution = "800 x 600" Then ZoomZoom = 80 'Testé sur un Catho 15" ok
If Resolution = "640 x 480" Then ZoomZoom = 65 'Testé sur un Catho 15" ok
With UserForm1
.Zoom = ZoomZoom
.Show 0
End With
ActiveWindow.Zoom = ZoomZoom
Exit Sub
Message:
MsgBox "Votre écran a une résolution non prévue de " & XVal & " par " & YVal & _
Chr(10) & "Modifier la macro en fonction...Thierry", vbInformation, "Macro 'Taille' à modifier !"
End Sub

A adapter pour ton usage

Mytå
 
@

@+Thierry

Guest
Salut Pierrot, le Forum

Fais une recherche sur samedi dernier j'ai répondu à quelqu'un qui demandait la même chose...

Bien que le "magicien" Laurent Longre soit parvenu à contrôler des API pour faire ça... Je ne conseille pas de le faire... On ne touche pas au paramètre de Windows des postes distants !! Imagines si tous les programmes où les Web Site prenaient comme çà le contrôle de tes paramètres perso ?

Oriente toi plutot sur les Propriétés Zoom des Controls et des Propriétés Height et Width de ton propre UserForm.

Si tu vas dans la rubrique téléchargement "XLD Goodies" charge "MonExcelDownLoads" et tu auras un exemple de mise en oeuvre de cette méthode...

Je viens de retrouver le lien, je te laisse quand même, tu arriveras sur mon post avec le code de L.L. Lien supprimé mais à tes risques et périls, mais surtout ne jamais lancer de ce genre de macro dans le Workbook_Open sans en avertir l'utilisateur.


Bonne Soirée
@+Thierry
 
@

@+Thierry

Guest
Ah ben bonsoir Mytå ;-)

J'étais en train de galérer à retrouver le lien pour Pierrot et tu as répondu entre-temps... Et avec la même proposition que moi, c'est à dire changer la taille du UserForm et pas la Configuration d'affichage de Windows.

Merci pour mon code, oui c'est bien celui là qui est dans "MonExcelDownload"... Depuis... j'ai fait des tests avec des TFTs !! lol

Bonne Soirée
@+Thierry
 
P

Pierrot

Guest
Salut Myta.

Je cale un peu la dessus, je ne vois pas où je dois l'insérer dans mon userform.


Option Explicit
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Const SM_CXSCREEN = 0 ' Largeur de l'écran
Const SM_CYSCREEN = 1 ' Hauteur de l'écran
 

Discussions similaires

Statistiques des forums

Discussions
314 092
Messages
2 105 748
Membres
109 425
dernier inscrit
BARBE