| Adattare userform di
Enzo |
Cari ragazzi ho un problema di questo tipo: ho
un file in excel con delle userform che ho adattato al tipo di pc
che utilizzo (parlo di videata) il problema e' che se utilizzo
il file su un altro pc con una risoluzione video diversa la userform
appare piu' grande o piu piccola c'e' un sistema affinche una
userform si possa adattare automaticamente al tipo di pc
(risoluzione video) che si sta utilizzando? |
|
| Per enzo di Apoben64 |
Ti allungo questo codice che dovrebbe fare al caso
tuo. un saluto luca
Private Sub UserForm_Initialize()
Application.WindowState = xlMaximized
With Application
Me.Top = .Top
Me.Left = .Left
Me.Height = .Height
Me.Width = .Width
End With
End Sub
| |
|
| di Enzo |
Grazie luca, potrebbe anche andare bene ma volevo
sapere se c'e' qualcosa che faccia si che la userform mantenendo i
valori di partenza si adatti ad un altro pc. nel tuo caso la
userform prende tutto lo schermo mentre io vorrei che se quella di
partenza per intenderci io sul mio pc la vedo in un certo modo
questa si adatti su un altro pc avendo la stessa grandezza |
|
| di Enzo |
| Ciao ragazzi a parte luca con il suo suggerimento
non c'e' nessun altro che sa darmi una mano in merito
all'adattamento della userform |
|
| di Mauro |
Ciao enzo, nel web gira questa routine che non
misura la definizione dello schermo ma tramite le proprietà
usableheight e usablewidth ricava le dimensioni della finestra in
pixel. prova a manipolarlo poi facci sapere. aspetto la tua
partecipazione attiva anche in altre discussioni. saluti e buon
lavoro!
Private Sub UserForm_Activate()
x = Application.UsableWidth
h = Application.UsableHeight
If x > 597 Then
xa = x / 597
ha = h / 309
With UserForm1
.Height = .Height * ha
.Width = .Width * xa
lefta = (x - .Width) / 2
.Left = lefta
toppa = (h - .Height) * ha
.Top = toppa
End With
For Each ctr In UserForm1.Controls
ctr.Width = ctr.Width * xa
ctr.Height = ctr.Height * ha
ctr.Font.Size = ctr.Font.Size * xa
ctr.Top = ctr.Top * ha
ctr.Left = ctr.Left * xa
Next
End If
End Sub | |
|
| Altra soluzione di
Apoben64 |
Per informazione, nel web ho trovato anche questo
tipo di soluzione che adatta la risoluzione dello schermo in
automatico a seconda del computer ricevente.
Private Sub workbook_open()
X = Application.UsableWidth
If X > 597 Then ActiveWindow.Zoom = 130 Else ActiveWindow.Zoom = 100
End Sub
| |