Formatação de ListB...
 
Notifications
Clear all

Formatação de ListBox

9 Posts
1 Usuários
0 Reactions
10.4 K Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá a todos!

Existe limite de colunas num listbox?

Como faço para colocar bordas nas colunas e dimencionar a largura de cada coluna como se fosse alto Size?

T+

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/07/2011 9:51 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Se estiver falando de Bordas nas Linhas, o ListBox não tem esta propriedade, o ideal seria você trabalhar com LISTVIEW que tem varias opções de formatação, quanto ao tamanho das colunas você pode utilizar :

'Define o Tamnho de 5 colunas

ListBox1.ColumnWidths = "0,8 cm;1,8 cm;2 cm ;1,6 cm ;6,5 cm"

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/07/2011 11:12 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá Mauro !

Como foi o fim de semana?

Qual seria a diferença de de listview pra listbox?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/07/2011 4:43 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Existe algum comando para carregar mais de 10 colunas?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/07/2011 7:39 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Anderson, a diferença entre os dois, é que em um controle ListView as possibilidades de configuraçõs e manusiamento são bem mais do que um listbox que é um pouco limitado.

Para se ter uma idéia de uma olhada no tópico abaixo, onde postei um link sobre conceitos básicos sobre Listview e outro para baixar um exemplo.

Da Planilha para a ListView
viewtopic.php?f=10&t=2107&st=0&sk=t&sd=a&hilit=listview

Ops :Editando, quanto a questão "Existe algum comando para carregar mais de 10 colunas?", não entendi uma vez que você define quantas colunas terá o seu listBox na proriedade do mesmo ou por rotina quando irá carregar os dados para o mesmo.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/07/2011 10:32 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

VLW Mauro to dando uma estudada.
e quanto a listbox com mais de 10 colunas?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/07/2011 10:36 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

VLW Mauro to dando uma estudada.
e quanto a listbox com mais de 10 colunas?

Anderson, eu postei acima a resposta, vai depender da instrução em sua rotina, mas as Propriedades são :

Propriedade ColumnCount : Definimos a quantidade de Colunas
Propriedade RowSource :Especifica a origem que fornece uma lista para um ComboBox ou ListBox.

Ou seja, se definir ;
ColumnCount = 10
e em :
RowSource : A1:J1

O listbox terá 10 Colunas com os dados que se encontram no range especificado.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/07/2011 10:48 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mauro desculpe a confusão.

Seguinte as colunas são fixas as linhas não.

to usando o seguinte codigo:

 Dim cell As Range
    Dim Rng As Range
With ThisWorkbook.Sheets("FAV")
        Set Rng = .Range("T1", .Range("T1").End(xlDown))
    End With
    For Each cell In Rng.Cells
        With Me.Ltb2
            .ColumnCount = 18
            .AddItem cell.Value
            .List(.ListCount - 1, 1) = cell.Offset(0, 1).Value
            .List(.ListCount - 1, 2) = cell.Offset(0, 2).Value
            .List(.ListCount - 1, 3) = cell.Offset(0, 3).Value
            .List(.ListCount - 1, 4) = cell.Offset(0, 4).Value
            .List(.ListCount - 1, 5) = cell.Offset(0, 5).Value
            .List(.ListCount - 1, 6) = cell.Offset(0, 6).Value
            .List(.ListCount - 1, 7) = cell.Offset(0, 7).Value
            .List(.ListCount - 1, 8) = cell.Offset(0, 8).Value
            .List(.ListCount - 1, 9) = cell.Offset(0, 7).Value
            .List(.ListCount - 1, 10) = cell.Offset(0, 10).Value
            .List(.ListCount - 1, 11) = cell.Offset(0, 11).Value
            .List(.ListCount - 1, 12) = cell.Offset(0, 12).Value
            .List(.ListCount - 1, 13) = cell.Offset(0, 13).Value
            .List(.ListCount - 1, 14) = cell.Offset(0, 14).Value
            .List(.ListCount - 1, 15) = cell.Offset(0, 15).Value
            .List(.ListCount - 1, 16) = cell.Offset(0, 16).Value
            .List(.ListCount - 1, 17) = cell.Offset(0, 17).Value
        End With
    Next cell

na linha de comando:

.List(.ListCount - 1, 10) = cell.Offset(0, 10).Value

Ta dando erro Não foi possivel definir a propriedade list. valor de propriedade invalido

Tenho outro list com 7 colunas que ta funcionando bem.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/07/2011 11:30 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Anderson, desculpe a demora, estava fazendo umas pesquisas antes, pois este foi um fato inuzitado para mim, como geralmente quando utilizo ListBox com varios itens e colunas, não utilizo da forma que postou, confesso que não tinha tido este problema antes, mas estamos aqui para aprender com os nossos erros tambem, então o que descobri foi :

Em VBA você está limitado a 10 colunas (0-9), utilizando RowSource podemos ter 256 colunas
usando additem o limite são 10 colunas
usando RowSource 256 colunas

Simplificando, podemos utilizar um ARRAY tambem, mas dos exemplos que encontrei o código abaixo irá lhe servir :

Private Sub CommandButton2_Click()

Dim c As Range, a() As String, n As Long, i As Long

ListBox1.ColumnCount = 12

    With Plan1
        Set Rng = .Range("A1", .Range("A1").End(xlDown))
        
        Me.ListBox1.Clear
        
        For Each c In Rng
            n = n + 1: ReDim Preserve a(1 To 12, 1 To n)
            For i = 1 To 12
                a(i, n) = c.Offset(, i - 1).Value
            Next
        Next
    End With
    
'Preenche o Listbox
If n > 0 Then Me.ListBox1.Column = a
End Sub

Neste codigo estamos utilizando 12 colunas, é só acertar o nome da planilha e a quantidade de colunas.

Faça os testes e qq duvida retorne.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/07/2011 5:43 pm