OVH Cloud OVH Cloud

ecran

1 réponse
Avatar
JACK 43
BONSOIR,

Dans une réponse, un contributeur me répond :

"Pour l'écran, me semble qu'il faudra chercher du côté des API et c'est pas
gagné même si ce n'est sans doute pas impossible bien sur. Mais il y a sur ce
site certains contributeurs qui maîtrisent mieux que moi ce sujet."

à la question suivante :

"Je travaille actuellement sur un projet trés important sous excel avec des
automatisations pour que plusieurs personnes par la suite puissent s'en
servir. Je suis donc obligé de travailler à mon domicile.
Le problème j'ai au bureau un écran de 15 pouces et à mon domicile un 19
pouces.
Donc mes formulaires (zone de listes, boutons, ...) ne sont jamais où je le
souhaite.
y a t il une façon de garder le mettre nombre de colonnes à l' écran par
exemple
ou de figer la zone à l'écran"

quelqu'un a t il une réponse ?

qu esr ce qu'un API ?

merci bonsoir

1 réponse

Avatar
isabelle
bonjour JACK,

trouver sur l'excellent site http://frederic.sigonneau.free.fr/

Attribute VB_Name = "ResolutionEcran"
'IL FAUT JUSTE ADAPTER LE ZOOM A SON ECRAN.
'*****mpfe : solutions de
'luc-michel -> Sub Video (d'où est tirée la fonction Resolution Ecran)
'Robert Dezan -> Sub Fct_Zoom_AdaptationEcran (lancée par une Auto_Open)

' 32-bit API declaration
Declare Function GetSystemMetrics32 Lib "User32" _
Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long

' 16-bit API declaration
Declare Function GetSystemMetrics16 Lib "user" _
Alias "GetSystemMetrics" (ByVal nIndex As Integer) As Integer

Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1

Function RésolutionEcran() As String
'fs à partir de la Sub Video de luc-michel (mpfe)

If Left(Application.Version, 1) = 5 Then
'16-bit Excel
vidWidth = GetSystemMetrics16(SM_CXSCREEN)
vidHeight = GetSystemMetrics16(SM_CYSCREEN)
Else
'32-bit Excel
vidWidth = GetSystemMetrics32(SM_CXSCREEN)
vidHeight = GetSystemMetrics32(SM_CYSCREEN)
End If

RésolutionEcran = vidWidth & "x" & vidHeight
End Function

Sub Test()
MsgBox RésolutionEcran
End Sub

Sub Video()
'mpfe : luc-michel

If Left(Application.Version, 1) = 5 Then
'16-bit Excel
vidWidth = GetSystemMetrics16(SM_CXSCREEN)
vidHeight = GetSystemMetrics16(SM_CYSCREEN)
Else
'32-bit Excel
vidWidth = GetSystemMetrics32(SM_CXSCREEN)
vidHeight = GetSystemMetrics32(SM_CYSCREEN)
End If

ms = "The current video mode is: "
msd = vidWidth & " X " & vidHeight
Workbooks("phyopen.xls").Sheets("physika").Range("g73") = msd

If msd = "800 X 600" Then
ActiveWindow.Zoom = 100
Range("A1:J25").Select
Selection.RowHeight = 14.5
End If
End Sub


'Sub Auto_open()
'mpfe
' ' action à exécuter à l'ouverture du programme
' Fct_Zoom_AdaptationEcran
'End Sub

Sub Fct_Zoom_AdaptationEcran()
Dim video_Larg, video_Haut As Variant
Application.ScreenUpdating = False
video_Larg = GetSystemMetrics32(SM_CXSCREEN)
video_Haut = GetSystemMetrics32(SM_CYSCREEN) ' pour info mais non
utilisé
' l'image originale créée en 800 x 600
ActiveWindow.Zoom = 100 * video_Larg / 800
End Sub

isabelle



BONSOIR,
"Je travaille actuellement sur un projet trés important sous excel avec des
automatisations pour que plusieurs personnes par la suite puissent s'en
servir. Je suis donc obligé de travailler à mon domicile.
Le problème j'ai au bureau un écran de 15 pouces et à mon domicile un 19
pouces.
Donc mes formulaires (zone de listes, boutons, ...) ne sont jamais où je le
souhaite.
y a t il une façon de garder le mettre nombre de colonnes à l' écran par
exemple
ou de figer la zone à l'écran"

quelqu'un a t il une réponse ?

qu esr ce qu'un API ?

merci bonsoir