mais je n'obtiens que des 0 en b1, b2 et b3. En fait je
peux difficilement
me dépanner puisque tout ce code est aussi clair pour
moi qu'une prophétie
de Nostradamus.
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je
peux difficilement
me dépanner puisque tout ce code est aussi clair pour
moi qu'une prophétie
de Nostradamus.
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je
peux difficilement
me dépanner puisque tout ce code est aussi clair pour
moi qu'une prophétie
de Nostradamus.
Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la résolution de l'écran
de l'utilisateur de mon application. Je dois donc récupérer ses paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de ce forum
avait soumis il y a quelque temps en réponse à un problème similaire au mien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32" Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags As Long) As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum As Long,
lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As Double
et ensuite j'ai défini la macro suivante afin de récupérer les paramètres de
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux difficilement
me dépanner puisque tout ce code est aussi clair pour moi qu'une prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur la bonne façon
de faire les choses.
merci
Guy
Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la résolution de l'écran
de l'utilisateur de mon application. Je dois donc récupérer ses paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de ce forum
avait soumis il y a quelque temps en réponse à un problème similaire au mien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32" Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags As Long) As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum As Long,
lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As Double
et ensuite j'ai défini la macro suivante afin de récupérer les paramètres de
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux difficilement
me dépanner puisque tout ce code est aussi clair pour moi qu'une prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur la bonne façon
de faire les choses.
merci
Guy
Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la résolution de l'écran
de l'utilisateur de mon application. Je dois donc récupérer ses paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de ce forum
avait soumis il y a quelque temps en réponse à un problème similaire au mien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32" Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags As Long) As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum As Long,
lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As Double
et ensuite j'ai défini la macro suivante afin de récupérer les paramètres de
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux difficilement
me dépanner puisque tout ce code est aussi clair pour moi qu'une prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur la bonne façon
de faire les choses.
merci
Guy
Bonjour.
Si ton appli est prévue pour 800x600
Sub Ajust()
Dim State&, LeHeight#
With Application
State = .WindowState
.ScreenUpdating = False
.WindowState = xlMaximized
LeHeight = .UsableHeight
.WindowState = State
.ScreenUpdating = True
End With
With ActiveWindow
.Zoom = (LeHeight / 329&) * .Zoom
End With
End Sub
Alain CROS
"probsim" a écrit dans le message de
news:Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la résolution de
l'écran
de l'utilisateur de mon application. Je dois donc récupérer ses
paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de ce forum
avait soumis il y a quelque temps en réponse à un problème similaire au
mien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32" Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags As Long)
As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum As Long,
lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As Double
et ensuite j'ai défini la macro suivante afin de récupérer les paramètres
de
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux
difficilement
me dépanner puisque tout ce code est aussi clair pour moi qu'une
prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur la bonne
façon
de faire les choses.
merci
Guy
Bonjour.
Si ton appli est prévue pour 800x600
Sub Ajust()
Dim State&, LeHeight#
With Application
State = .WindowState
.ScreenUpdating = False
.WindowState = xlMaximized
LeHeight = .UsableHeight
.WindowState = State
.ScreenUpdating = True
End With
With ActiveWindow
.Zoom = (LeHeight / 329&) * .Zoom
End With
End Sub
Alain CROS
"probsim" <nospam-serciasuzanne@videotron.ca> a écrit dans le message de
news: eWIAnh83EHA.4092@TK2MSFTNGP14.phx.gbl...
Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la résolution de
l'écran
de l'utilisateur de mon application. Je dois donc récupérer ses
paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de ce forum
avait soumis il y a quelque temps en réponse à un problème similaire au
mien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32" Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags As Long)
As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum As Long,
lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As Double
et ensuite j'ai défini la macro suivante afin de récupérer les paramètres
de
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux
difficilement
me dépanner puisque tout ce code est aussi clair pour moi qu'une
prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur la bonne
façon
de faire les choses.
merci
Guy
Bonjour.
Si ton appli est prévue pour 800x600
Sub Ajust()
Dim State&, LeHeight#
With Application
State = .WindowState
.ScreenUpdating = False
.WindowState = xlMaximized
LeHeight = .UsableHeight
.WindowState = State
.ScreenUpdating = True
End With
With ActiveWindow
.Zoom = (LeHeight / 329&) * .Zoom
End With
End Sub
Alain CROS
"probsim" a écrit dans le message de
news:Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la résolution de
l'écran
de l'utilisateur de mon application. Je dois donc récupérer ses
paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de ce forum
avait soumis il y a quelque temps en réponse à un problème similaire au
mien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32" Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags As Long)
As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum As Long,
lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As Double
et ensuite j'ai défini la macro suivante afin de récupérer les paramètres
de
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux
difficilement
me dépanner puisque tout ce code est aussi clair pour moi qu'une
prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur la bonne
façon
de faire les choses.
merci
Guy
par 329&. Pourquoi le &.
Merveilleux. Merci. Ça règle mon problème. Une petite question: tu
divise
Guy
"Alain CROS" a écrit dans le message de news:Bonjour.
Si ton appli est prévue pour 800x600
Sub Ajust()
Dim State&, LeHeight#
With Application
State = .WindowState
.ScreenUpdating = False
.WindowState = xlMaximized
LeHeight = .UsableHeight
.WindowState = State
.ScreenUpdating = True
End With
With ActiveWindow
.Zoom = (LeHeight / 329&) * .Zoom
End With
End Sub
Alain CROS
"probsim" a écrit dans le
message de
news:Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la résolution
de
l'écran
de l'utilisateur de mon application. Je dois donc récupérer ses
paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de ce
forum
avait soumis il y a quelque temps en réponse à un problème
similaire au
mien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des
zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32" Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags As
Long)
As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum As
Long,
lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As Double
et ensuite j'ai défini la macro suivante afin de récupérer les
paramètres
de
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux
difficilement
me dépanner puisque tout ce code est aussi clair pour moi qu'une
prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur la
bonne
façon
de faire les choses.
merci
Guy
par 329&. Pourquoi le &.
Merveilleux. Merci. Ça règle mon problème. Une petite question: tu
divise
Guy
"Alain CROS" <Personne@ICI> a écrit dans le message de news:
eJqhNM93EHA.1392@tk2msftngp13.phx.gbl...
Bonjour.
Si ton appli est prévue pour 800x600
Sub Ajust()
Dim State&, LeHeight#
With Application
State = .WindowState
.ScreenUpdating = False
.WindowState = xlMaximized
LeHeight = .UsableHeight
.WindowState = State
.ScreenUpdating = True
End With
With ActiveWindow
.Zoom = (LeHeight / 329&) * .Zoom
End With
End Sub
Alain CROS
"probsim" <nospam-serciasuzanne@videotron.ca> a écrit dans le
message de
news: eWIAnh83EHA.4092@TK2MSFTNGP14.phx.gbl...
Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la résolution
de
l'écran
de l'utilisateur de mon application. Je dois donc récupérer ses
paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de ce
forum
avait soumis il y a quelque temps en réponse à un problème
similaire au
mien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des
zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32" Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags As
Long)
As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum As
Long,
lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As Double
et ensuite j'ai défini la macro suivante afin de récupérer les
paramètres
de
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux
difficilement
me dépanner puisque tout ce code est aussi clair pour moi qu'une
prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur la
bonne
façon
de faire les choses.
merci
Guy
par 329&. Pourquoi le &.
Merveilleux. Merci. Ça règle mon problème. Une petite question: tu
divise
Guy
"Alain CROS" a écrit dans le message de news:Bonjour.
Si ton appli est prévue pour 800x600
Sub Ajust()
Dim State&, LeHeight#
With Application
State = .WindowState
.ScreenUpdating = False
.WindowState = xlMaximized
LeHeight = .UsableHeight
.WindowState = State
.ScreenUpdating = True
End With
With ActiveWindow
.Zoom = (LeHeight / 329&) * .Zoom
End With
End Sub
Alain CROS
"probsim" a écrit dans le
message de
news:Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la résolution
de
l'écran
de l'utilisateur de mon application. Je dois donc récupérer ses
paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de ce
forum
avait soumis il y a quelque temps en réponse à un problème
similaire au
mien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des
zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32" Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags As
Long)
As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum As
Long,
lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As Double
et ensuite j'ai défini la macro suivante afin de récupérer les
paramètres
de
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux
difficilement
me dépanner puisque tout ce code est aussi clair pour moi qu'une
prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur la
bonne
façon
de faire les choses.
merci
Guy
Bonjour,par 329&. Pourquoi le &.
C'est une autre façon de désigner l'entier long. Le type LONG. C'est
un relent de l'histoire.
Le BASIC original désignait les entiers avec le %, les nombres en
"double-précision" avec #, les nombres en "simple-précision avec &,
les chaînes de caractères avec $
C'est ainsi qu A% et A& étaient des variables différentes. Fallait
pas
se tromper trop souvent, sinon il beuglait "TYPE MISMATCH ERROR".
Comme il ne supportait pas les minuscules et que les variables
étaient
au plus deux caractères débutant obligatoirement par une lettre,
fallait pas avoir un programme trop élaboré pour vider le magasin
des
variables.
Ces méthodes ont été préservées pour des raisons de compatibilité.
"probsim" a écrit dans le
message
de news:Merveilleux. Merci. Ça règle mon problème. Une petite question: tu
divise
Guy
"Alain CROS" a écrit dans le message de news:Bonjour.
Si ton appli est prévue pour 800x600
Sub Ajust()
Dim State&, LeHeight#
With Application
State = .WindowState
.ScreenUpdating = False
.WindowState = xlMaximized
LeHeight = .UsableHeight
.WindowState = State
.ScreenUpdating = True
End With
With ActiveWindow
.Zoom = (LeHeight / 329&) * .Zoom
End With
End Sub
Alain CROS
"probsim" a écrit dans le
message denews:Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la
résolution
del'écran
de l'utilisateur de mon application. Je dois donc récupérer ses
paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de
ce
forumavait soumis il y a quelque temps en réponse à un problème
similaire aumien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des
zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32"
Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags
As
Long)As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum
As
Long,lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As
Double
et ensuite j'ai défini la macro suivante afin de récupérer les
paramètresde
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux
difficilement
me dépanner puisque tout ce code est aussi clair pour moi
qu'une
prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur
la
bonnefaçon
de faire les choses.
merci
Guy
Bonjour,
par 329&. Pourquoi le &.
C'est une autre façon de désigner l'entier long. Le type LONG. C'est
un relent de l'histoire.
Le BASIC original désignait les entiers avec le %, les nombres en
"double-précision" avec #, les nombres en "simple-précision avec &,
les chaînes de caractères avec $
C'est ainsi qu A% et A& étaient des variables différentes. Fallait
pas
se tromper trop souvent, sinon il beuglait "TYPE MISMATCH ERROR".
Comme il ne supportait pas les minuscules et que les variables
étaient
au plus deux caractères débutant obligatoirement par une lettre,
fallait pas avoir un programme trop élaboré pour vider le magasin
des
variables.
Ces méthodes ont été préservées pour des raisons de compatibilité.
"probsim" <nospam-serciasuzanne@videotron.ca> a écrit dans le
message
de news:uooKRlM4EHA.3236@TK2MSFTNGP15.phx.gbl...
Merveilleux. Merci. Ça règle mon problème. Une petite question: tu
divise
Guy
"Alain CROS" <Personne@ICI> a écrit dans le message de news:
eJqhNM93EHA.1392@tk2msftngp13.phx.gbl...
Bonjour.
Si ton appli est prévue pour 800x600
Sub Ajust()
Dim State&, LeHeight#
With Application
State = .WindowState
.ScreenUpdating = False
.WindowState = xlMaximized
LeHeight = .UsableHeight
.WindowState = State
.ScreenUpdating = True
End With
With ActiveWindow
.Zoom = (LeHeight / 329&) * .Zoom
End With
End Sub
Alain CROS
"probsim" <nospam-serciasuzanne@videotron.ca> a écrit dans le
message de
news: eWIAnh83EHA.4092@TK2MSFTNGP14.phx.gbl...
Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la
résolution
de
l'écran
de l'utilisateur de mon application. Je dois donc récupérer ses
paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de
ce
forum
avait soumis il y a quelque temps en réponse à un problème
similaire au
mien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des
zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32"
Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags
As
Long)
As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum
As
Long,
lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As
Double
et ensuite j'ai défini la macro suivante afin de récupérer les
paramètres
de
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux
difficilement
me dépanner puisque tout ce code est aussi clair pour moi
qu'une
prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur
la
bonne
façon
de faire les choses.
merci
Guy
Bonjour,par 329&. Pourquoi le &.
C'est une autre façon de désigner l'entier long. Le type LONG. C'est
un relent de l'histoire.
Le BASIC original désignait les entiers avec le %, les nombres en
"double-précision" avec #, les nombres en "simple-précision avec &,
les chaînes de caractères avec $
C'est ainsi qu A% et A& étaient des variables différentes. Fallait
pas
se tromper trop souvent, sinon il beuglait "TYPE MISMATCH ERROR".
Comme il ne supportait pas les minuscules et que les variables
étaient
au plus deux caractères débutant obligatoirement par une lettre,
fallait pas avoir un programme trop élaboré pour vider le magasin
des
variables.
Ces méthodes ont été préservées pour des raisons de compatibilité.
"probsim" a écrit dans le
message
de news:Merveilleux. Merci. Ça règle mon problème. Une petite question: tu
divise
Guy
"Alain CROS" a écrit dans le message de news:Bonjour.
Si ton appli est prévue pour 800x600
Sub Ajust()
Dim State&, LeHeight#
With Application
State = .WindowState
.ScreenUpdating = False
.WindowState = xlMaximized
LeHeight = .UsableHeight
.WindowState = State
.ScreenUpdating = True
End With
With ActiveWindow
.Zoom = (LeHeight / 329&) * .Zoom
End With
End Sub
Alain CROS
"probsim" a écrit dans le
message denews:Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la
résolution
del'écran
de l'utilisateur de mon application. Je dois donc récupérer ses
paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de
ce
forumavait soumis il y a quelque temps en réponse à un problème
similaire aumien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des
zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32"
Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags
As
Long)As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum
As
Long,lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As
Double
et ensuite j'ai défini la macro suivante afin de récupérer les
paramètresde
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux
difficilement
me dépanner puisque tout ce code est aussi clair pour moi
qu'une
prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur
la
bonnefaçon
de faire les choses.
merci
Guy
Merveilleux. Merci. Ça règle mon problème. Une petite question: tu divise
par 329&. Pourquoi le &.
Guy
"Alain CROS" a écrit dans le message de news:Bonjour.
Si ton appli est prévue pour 800x600
Sub Ajust()
Dim State&, LeHeight#
With Application
State = .WindowState
.ScreenUpdating = False
.WindowState = xlMaximized
LeHeight = .UsableHeight
.WindowState = State
.ScreenUpdating = True
End With
With ActiveWindow
.Zoom = (LeHeight / 329&) * .Zoom
End With
End Sub
Alain CROS
"probsim" a écrit dans le message de
news:Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la résolution de
l'écran
de l'utilisateur de mon application. Je dois donc récupérer ses
paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de ce forum
avait soumis il y a quelque temps en réponse à un problème similaire au
mien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32" Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags As Long)
As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum As Long,
lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As Double
et ensuite j'ai défini la macro suivante afin de récupérer les
paramètres
de
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux
difficilement
me dépanner puisque tout ce code est aussi clair pour moi qu'une
prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur la bonne
façon
de faire les choses.
merci
Guy
Merveilleux. Merci. Ça règle mon problème. Une petite question: tu divise
par 329&. Pourquoi le &.
Guy
"Alain CROS" <Personne@ICI> a écrit dans le message de news:
eJqhNM93EHA.1392@tk2msftngp13.phx.gbl...
Bonjour.
Si ton appli est prévue pour 800x600
Sub Ajust()
Dim State&, LeHeight#
With Application
State = .WindowState
.ScreenUpdating = False
.WindowState = xlMaximized
LeHeight = .UsableHeight
.WindowState = State
.ScreenUpdating = True
End With
With ActiveWindow
.Zoom = (LeHeight / 329&) * .Zoom
End With
End Sub
Alain CROS
"probsim" <nospam-serciasuzanne@videotron.ca> a écrit dans le message de
news: eWIAnh83EHA.4092@TK2MSFTNGP14.phx.gbl...
Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la résolution de
l'écran
de l'utilisateur de mon application. Je dois donc récupérer ses
paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de ce forum
avait soumis il y a quelque temps en réponse à un problème similaire au
mien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32" Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags As Long)
As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum As Long,
lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As Double
et ensuite j'ai défini la macro suivante afin de récupérer les
paramètres
de
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux
difficilement
me dépanner puisque tout ce code est aussi clair pour moi qu'une
prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur la bonne
façon
de faire les choses.
merci
Guy
Merveilleux. Merci. Ça règle mon problème. Une petite question: tu divise
par 329&. Pourquoi le &.
Guy
"Alain CROS" a écrit dans le message de news:Bonjour.
Si ton appli est prévue pour 800x600
Sub Ajust()
Dim State&, LeHeight#
With Application
State = .WindowState
.ScreenUpdating = False
.WindowState = xlMaximized
LeHeight = .UsableHeight
.WindowState = State
.ScreenUpdating = True
End With
With ActiveWindow
.Zoom = (LeHeight / 329&) * .Zoom
End With
End Sub
Alain CROS
"probsim" a écrit dans le message de
news:Bonjour,
j'ai encore besoin de vos lumières.
Je veux simplement ajuster le "zoom" en fonction de la résolution de
l'écran
de l'utilisateur de mon application. Je dois donc récupérer ses
paramètres
de résolution. J'ai utilisé du code qu'un des contributeurs de ce forum
avait soumis il y a quelque temps en réponse à un problème similaire au
mien
mais ça ne fonctionne pas. Tout ce que je récupère se sont des zéros.
Voici ce que j'ai fait.
J'ai mis dans la déclaration du module ceci:
Option Explicit
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_DISPLAYFLAGS = &H200000
Const DM_DISPLAYFREQUENCY = &H400000
Private Declare Function ChangeDisplaySettings Lib "user32" Alias
"ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags As Long)
As
Long
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum As Long,
lpDevMode As Any) As Boolean
Dim D As DEVMODE
Dim lBits As Long, Largeurecran As Double, Hauteurecran As Double
et ensuite j'ai défini la macro suivante afin de récupérer les
paramètres
de
résolution dans les cellules b1 à b3:
Sub ecran()
'
' ecran Macro
' Macro enregistrée le 2004-12-01 par GP
'
Call EnumDisplaySettings(0&, -1, D)
Range("b1") = D.dmPelsWidth
Range("b2") = D.dmPelsHeight
Range("b3") = D.dmBitsPerPel
'
End Sub
mais je n'obtiens que des 0 en b1, b2 et b3. En fait je peux
difficilement
me dépanner puisque tout ce code est aussi clair pour moi qu'une
prophétie
de Nostradamus.
J'apprécierais grandement si quelqu'un pouvait m'éclairer sur la bonne
façon
de faire les choses.
merci
Guy