by sal
2009-08-07 08:55:23 UTC
Ciao a tutti, vorrei chiedere una cosa per risolvere un problema forse
annoso.
Non tutti hanno la stessa risoluzione dello schermo per cui, un file
Excel che abbia diverse userform si scombinano con l'allineamento che
uno ha dato se visualizzato si diversi PC con risoluzioni diverse.
Forse sarà OT con questa sezione, ma ci provo.
Per cambiare risoluzione uso questa macro, in un Modulo
Sub schermo()
x = Application.UsableWidth
h = Application.UsableHeight
If x > 597 Then
xa = x / 597
ha = h / 309
With UserForm1
.Top = 1
.Left = 1
.Height = Application.UsableHeight + 130
.Width = Application.UsableWidth
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
Funziona ed ha sempre funzionato bene.
Ora io vorrei un poco cambiare il modo di affrontare il problema,
sempre con il VBA, invece di adattare le userform alla risoluzione
dello schermo, perche non adattare lo schermo alla risoluzione con cui
è stato creato il file Excel.
Io uso la risoluzione 1024x768 pixel, e creo i file con questa
risoluzione, alcuni usano la risoluzione 1280x1024 pixel, avranno
occhi da orologiai o gioiellieri, capirete che un file creato con la
mia risoluzione, le usarform sovrapposte se ne vanno per conto loro.
Si può fare con il VBA una macro che cambi la risoluzione dello
schermo nel pannello controllo e poi alla chiusura rimette a posto la
risoluzione?.
Un Saluto By Sal,
annoso.
Non tutti hanno la stessa risoluzione dello schermo per cui, un file
Excel che abbia diverse userform si scombinano con l'allineamento che
uno ha dato se visualizzato si diversi PC con risoluzioni diverse.
Forse sarà OT con questa sezione, ma ci provo.
Per cambiare risoluzione uso questa macro, in un Modulo
Sub schermo()
x = Application.UsableWidth
h = Application.UsableHeight
If x > 597 Then
xa = x / 597
ha = h / 309
With UserForm1
.Top = 1
.Left = 1
.Height = Application.UsableHeight + 130
.Width = Application.UsableWidth
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
Funziona ed ha sempre funzionato bene.
Ora io vorrei un poco cambiare il modo di affrontare il problema,
sempre con il VBA, invece di adattare le userform alla risoluzione
dello schermo, perche non adattare lo schermo alla risoluzione con cui
è stato creato il file Excel.
Io uso la risoluzione 1024x768 pixel, e creo i file con questa
risoluzione, alcuni usano la risoluzione 1280x1024 pixel, avranno
occhi da orologiai o gioiellieri, capirete che un file creato con la
mia risoluzione, le usarform sovrapposte se ne vanno per conto loro.
Si può fare con il VBA una macro che cambi la risoluzione dello
schermo nel pannello controllo e poi alla chiusura rimette a posto la
risoluzione?.
Un Saluto By Sal,