Hallo ,
Op dit moment ben ik een bestand aan het afronden waar veel gebruikers gebruik van gaan maken. Na een paar testen valt het op dat andere gebruikers andere beeldschermresoluties hanteren. Dat maakt het bestand minder gemakkelijk te gebruiken doordat de overzichtelijkheid een stuk monder wordt.
Nu is het mogelijk in de handleiding te vermelden een bepaalde resolutie te gebruiken. Echter ben ik bang dat veel dat niet zullen wijzigen. Wanneer ik een knop in het bestand bouw die de resolutie automatisch (via de macro) op de juiste zet zullen de gebruikers het wel doen. Daarom roep ik jullie hulp in.
Dus wie weet een macro om de resolutie automatisch bijvoorbeeld op'1400 bij 1050 pixels' te zetten. Het zou helemaal mooi zijn wanneer er ook een macro komt die de resolutie terug zet op de resolutie die de gebruiker had (een variabel).
Daarnaast heb ik behoefte aan een macro die de resolutie van de gebruiker weer terug kan zetten. Dus dan zou de macro moeten nagaan welke resolutie de gebruiken had en deze terug kunnen zetten wanneer de gebruiker dit wil.
Ik heb op internet onderstaande code gevonden, maar deze loopt vast, omdat ik office 2010 64bit gebruik.
Hopelijk gaat het lukken. Bedankt voor de hulp!
Staat in module1:
Deze foutmelding krijg ik;
Met vriendelijke groet, Louis
Op dit moment ben ik een bestand aan het afronden waar veel gebruikers gebruik van gaan maken. Na een paar testen valt het op dat andere gebruikers andere beeldschermresoluties hanteren. Dat maakt het bestand minder gemakkelijk te gebruiken doordat de overzichtelijkheid een stuk monder wordt.
Nu is het mogelijk in de handleiding te vermelden een bepaalde resolutie te gebruiken. Echter ben ik bang dat veel dat niet zullen wijzigen. Wanneer ik een knop in het bestand bouw die de resolutie automatisch (via de macro) op de juiste zet zullen de gebruikers het wel doen. Daarom roep ik jullie hulp in.
Dus wie weet een macro om de resolutie automatisch bijvoorbeeld op'1400 bij 1050 pixels' te zetten. Het zou helemaal mooi zijn wanneer er ook een macro komt die de resolutie terug zet op de resolutie die de gebruiker had (een variabel).
Daarnaast heb ik behoefte aan een macro die de resolutie van de gebruiker weer terug kan zetten. Dus dan zou de macro moeten nagaan welke resolutie de gebruiken had en deze terug kunnen zetten wanneer de gebruiker dit wil.
Ik heb op internet onderstaande code gevonden, maar deze loopt vast, omdat ik office 2010 64bit gebruik.
Hopelijk gaat het lukken. Bedankt voor de hulp!
Staat in module1:
Code:
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
[COLOR="#FF0000"]Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" _
(ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lptypDevMode As Any) As Boolean
Declare Function ChangeDisplaySettings Lib "user32" Alias _
"ChangeDisplaySettingsA" (lptypDevMode As Any, ByVal dwFlags As Long) As Long
Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, _
ByVal dwReserved As Long) As Long
Declare Function GetSystemMetrics Lib "user32.dll" (ByVal nIndex As Long) As Long[/COLOR]
'Oude waarde onthouden
Dim Xoud As Long
Dim Youd As Long
Sub ChangeScreen_Resolution(ScrWidth As Long, ScrHeight As Long)
Dim typDevM As typDevMODE
Dim lngResult As Long
Dim intAns As Integer
'Huidige grafische instellingen
lngResult = EnumDisplaySettings(0, 0, typDevM)
With typDevM
.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
.dmPelsWidth = ScrWidth 'ScreenWidth (640,800,1024, etc)
.dmPelsHeight = ScrHeight 'ScreenHeight (480,600,768, etc)
End With
' Change the display settings to the specified graphics mode.
lngResult = ChangeDisplaySettings(typDevM, CDS_TEST)
Select Case lngResult
Case DISP_CHANGE_RESTART
intAns = MsgBox("Computer moet worden heropgestart." & _
vbCrLf & vbCrLf & "Nu heropstarten?", _
vbYesNo + vbSystemModal, "Resolutie")
If intAns = vbYes Then Call ExitWindowsEx(EWX_REBOOT, 0)
Case DISP_CHANGE_SUCCESSFUL
Call ChangeDisplaySettings(typDevM, CDS_UPDATEREGISTRY)
Case Else
MsgBox "Deze resolutie wordt niet ondersteund door uw beeldscherm!", vbSystemModal, "Error"
End Select
End Sub
Sub GetScreenSize()
Dim x As Long, y As Long
Dim sYourMessage As String
Dim iConfirm As Integer
x = GetSystemMetrics(SM_CXSCREEN)
y = GetSystemMetrics(SM_CYSCREEN)
Xoud = x
Youd = y
If x <> 1400 And y <> 1050 Then
sYourMessage = "Huidige resolutie: " & x & " x " & y & vbCrLf
sYourMessage = sYourMessage & "Dit bestand wordt best bekeken met een resolutie van 1400x1050." & vbCrLf
sYourMessage = sYourMessage & "Nu wijzigen?"
iConfirm = MsgBox(sYourMessage, vbExclamation + vbYesNo, "Resolutie")
If iConfirm = vbYes Then
'Wijzigen resolutie
ChangeScreen_Resolution 1400, 1050
End If
End If
End Sub
Sub Herstel()
ChangeScreen_Resolution Xoud, Youd
End Sub
[B]Staat in ThisWorkbook:[/B]
Option Explicit
Private Sub Workbook_Deactivate()
Call Herstel
End Sub
Private Sub Workbook_Open()
Call GetScreenSize
Application.WindowState = xlMaximized
End Sub
Deze foutmelding krijg ik;
Met vriendelijke groet, Louis
Laatst bewerkt door een moderator: