Širina stolpca v ListBox-u

Pomoč pri delu z MS Excelom
Odgovori
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Širina stolpca v ListBox-u

Odgovor Napisal/-a Stenly »

Pozdrav

Že kar nekaj časa se mučim, da bi nastavil različne širine stolpcev v ListBox-u na Formi (Excel).

Moram priznat, da mi je to uspelo le pri prvem stolpcu (očitno je tako privzeto) :oops: .

Torej rabim nasvet kako označiti še ostale stolpce, da bi jim posamično spremenil širino.

Lep pozdrav
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Problem naj bi vam rešila lastnost 'ColumnWidths'.
lp,
Matjaž Prtenjak
Administrator
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

...ja, mogoče sem malo nerodno napisal. Do tu sem prišel. Uspelo mi je - a samo v prvem stolpcu. Poskušal sem vse mogoče, a vedno pri vpisu širine 'ColumnWidths' ostaja kazalec na prvem stolpcu. Kako kako bi poljubno nastavil še širine ostalih stolpcev (5).

Lp
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Hm.. stvar zagotvo deluje. Da ne dolgovezim, vam podajam kar primer iz Excelove pomoči.

Naredite nov obrazcec. Nanj postavite seznam (poimenovan ListBox1), tri vnosna polja (TextBox1..TextBox3) ter en gumb (CommandButton1), ter skopirajte sledečo kodo:

Koda: Izberi vse

Dim MyArray(2, 3) As String

Private Sub CommandButton1_Click()
    'ColumnWidths requires a value for each column
    'separated by semicolons
    ListBox1.ColumnWidths = TextBox1.Text & ";" _
        & TextBox2.Text & ";" & TextBox3.Text
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As _
    MSForms.ReturnBoolean)
    'ColumnWidths accepts points (no units), inches
    'or centimeters; make inches the default
    If Not (InStr(TextBox1.Text, "in") > 0 Or _
     InStr(TextBox1.Text, "cm") > 0) Then
        TextBox1.Text = TextBox1.Text & " in"
    End If
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As _
    MSForms.ReturnBoolean)
    'ColumnWidths accepts points (no units), inches
    'or centimeters; make inches the default
    If Not (InStr(TextBox2.Text, "in") > 0 Or _
     InStr(TextBox2.Text, "cm") > 0) Then
        TextBox2.Text = TextBox2.Text & " in"
    End If
End Sub
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'ColumnWidths accepts points (no units), inches or
    'centimeters; make inches the default
    If Not (InStr(TextBox3.Text, "in") > 0 Or _
     InStr(TextBox3.Text, "cm") > 0) Then
        TextBox3.Text = TextBox3.Text & " in"
    End If
End Sub
Private Sub UserForm_Initialize()
Dim i, j, Rows As Single

ListBox1.ColumnCount = 3
Rows = 2

For j = 0 To ListBox1.ColumnCount - 1
    For i = 0 To Rows - 1
        MyArray(i, j) = "Row " & i & ", Column " & j
    Next i
Next j
'Load MyArray into ListBox1
ListBox1.List() = MyArray
'1-inch columns initially
TextBox1.Text = "1 in"
TextBox2.Text = "1 in"
TextBox3.Text = "1 in"
End Sub
Kod boste videli, z vnosi v polja določate širino TREH stolpcev.
lp,
Matjaž Prtenjak
Administrator
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

Ja; tako pa gre.

Hvala za trud in lep pozdrav
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

...malo bolj sem še pogledal kodo.
Širina posameznih stolpcev se določi pod 'ColumnWidths', posamezne stolpce pa se loči s ";". No; to nisem vedel.
Zadeva rešena.
Še 1x lp
Odgovori