• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Beeldinstellingen in macro mogelijk?

Status
Niet open voor verdere reacties.

Rudy1978

Gebruiker
Lid geworden
10 apr 2008
Berichten
9
Goedemiddag,

ik heb een programma in Excel geschreven, waarbij ik er op mijn scherm op heb gelet dat elke pagina in zijn volledigheid op het scherm verschijnt bij 100% beeldgrootte.

Als ik het programma op een andere pc open, dan blijken de scherminstellingen helemaal anders, waardoor delen van de pagina buiten het scherm vallen. Dit is niet de bedoeling en irriteert me enorm.:evil: Ik heb al geprobeerd een macro te maken die het beeld automaisch instelt op 100%, maar dit maakt niets uit. Het zit hem denk ik in het scherm. Kent iemand een truc, die me kan helpen ervoor te zorgen dat iedereen die mijn Excel programma opent precies hetzelfde op het scherm ziet als ik zelf?

Zou echt zo fijn zijn !:thumb:

Groeten en bedankt,

Rudy.
 
Zie code die ik op internet heb gevonden:

Code:
Option Explicit* * *'Plaats deze code in een KlasseModule met de naam Klasse1

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

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

Const SM_CXSCREEN = 0
Const SM_CYSCREEN = 1

Property Get GetCurrentWidth()
Dim vidWidth As Integer
* * If Left(Application.Version, 1) = 5 Then
'* * * *16-bit Excel
* * * * vidWidth = GetSystemMetrics16(SM_CXSCREEN)
* * Else
'* * * *32-bit Excel
* * * * vidWidth = GetSystemMetrics32(SM_CXSCREEN)
* * End If
* * GetCurrentWidth = vidWidth
End Property

Property Get GetCurrentHeight()
* * Dim vidHeight As Integer
* * If Left(Application.Version, 1) = 5 Then
'* * * *16-bit Excel
* * * * vidHeight = GetSystemMetrics16(SM_CYSCREEN)
* * Else
'* * * *32-bit Excel
* * * * vidHeight = GetSystemMetrics32(SM_CYSCREEN)
* * End If
* * GetCurrentHeight = vidHeight
End Property

En deze hoort daar ook bij:

Code:
Private Sub UserForm_Initialize()* * 'Plaats deze code in de UserForm
Dim j As Integer
Dim Reso As New Klasse1
* *
* * With Me
* * * * .Top = 0
* * * * .Left = 0
* * * * .Height = (Reso.GetCurrentHeight / 4) * 3
* * * * .Width = (Reso.GetCurrentWidth / 4) * 3
* * End With
* *
* * With Me
* * For j = 0 To .Controls.Count - 1
* * * * With .Controls(j)
* * * * * * .Top = .Top * Reso.GetCurrentHeight / 600
* * * * * * .Height = .Height * Reso.GetCurrentHeight / 600
* * * * * * .Left = .Left * Reso.GetCurrentHeight / 600
* * * * * * .Width = .Width * Reso.GetCurrentHeight / 600
* * * * * * .Font.Size = Int(.Font.Size * Reso.GetCurrentHeight / 600)
* * * * End With
* * Next
* * End With
 
Wanneer je een userform in Word maakt:
Code:
Private Sub UserForm_Initialize()
    With Application.System
        Me.Height = .VerticalResolution * 0.6
        Me.Width = .HorizontalResolution * 0.6
    End With
End Sub
Wanneer je een userform in Excel maakt:
Code:
Private Sub UserForm_Initialize()
    Application.ActivateMicrosoftApp xlMicrosoftWord    
    With getobject(,"Word.Application").Application.System
        Me.Height = .VerticalResolution * 0.6
        Me.Width = .HorizontalResolution * 0.6
    End With
End Sub
PS. de code die RaymondC hier plaatste was afkomsig van het Officeforum, auteur Radjesh Klauske
PSS.RaymondC mag van mij iets minder (en minder klakkeloos) ^C en ^V gebruiken
 
Laatst bewerkt:
Ik vind jullie discussie waardevol maar moet er helaas een einde aan maken. Offtopic berichten zijn weggehaald. We gaan weer over tot het probleem van de vraagsteller. :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan