| Userform e Listbox di
Giuseppe |
| Ho una routine che mi dimensiona automaticamente
una userform a tutto schermo ogni volta che cambio la risoluzione
video. Il problema sta nelle listbox poichè non viene rispettata la
proprieta "Columnwidth" e mi sfalsa l'allineamento delle
colonne. |
|
| di apoben64 |
Ciao Giuseppe e benvenuto nel sito !!! Ci sono
due modi per impostare la listbox una nelle proprietà della listbox
(tasto F4) "ColumnCount" e ColumnWidths" e l'altra immettendo
manualmente nella "Private sub Userform_Activate()" il comando in
cui selezioni i tuoi parametri , esempio : Listbox1.ColumnCount
= (colonne) Listbox1.ColumnWidths= " 100;40;" ecc. (dimensione
delle colonne) Tu nel tuo lavoro cosa usi ?
|
|
| di Mauro |
Routine di partenza Private Sub
UserForm_Activate() 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
Exit sub
Sembra quasi un baco di visual basic
nell'impostare le proprietà delle listbox. Provando a cambiare
l'ordinamento delle proprietà all'interno del ciclo: For Each
ctr In UserForm1.Controls ctr.Font.Size = ctr.Font.Size * xa
ctr.Top = ctr.Top * ha ctr.Left = ctr.Left * xa
ctr.Width = ctr.Width * xa ctr.Height = ctr.Height * ha
Next
Adesso funziona meglio, almeno a me.... |