Dimensionamento Listbox

  • 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....