PROBLEMAS COM LISTBOX

MARIOANDRADE 15/04/2014 22:42:11
#437331
Meus amigos, estou com um problema no código abaixo, só funciona quando coloco até a ListCount - 1, 9) da décima em diante ( eu tenho 20 ao todo) aparece o erro da imagem abaixo:
Dim Linha As Integer
Dim Lin As Integer
Dim Ultima As Long
Dim Valor As String
Valor = cmbRBatizado.Text
Lin = 2
Ultima = Sheets([Ô]Cadastro[Ô]).Range([Ô]A65000[Ô]).End(xlUp).Row

Do Until Sheets([Ô]Cadastro[Ô]).Cells(Lin, 1) = [Ô][Ô]
If Sheets([Ô]Cadastro[Ô]).Cells(Lin, 9) = Valor Then

UsrPrincipal.lstRel.AddItem Sheets([Ô]Cadastro[Ô]).Range([Ô]A[Ô] & Lin)
UsrPrincipal.lstRel.List(UsrPrincipal.lstRel.ListCount - 1, 1) = Sheets([Ô]Cadastro[Ô]).Range([Ô]B[Ô] & Lin)
UsrPrincipal.lstRel.List(UsrPrincipal.lstRel.ListCount - 1, 2) = Sheets([Ô]Cadastro[Ô]).Range([Ô]C[Ô] & Lin)
UsrPrincipal.lstRel.List(UsrPrincipal.lstRel.ListCount - 1, 3) = Sheets([Ô]Cadastro[Ô]).Range([Ô]D[Ô] & Lin)
UsrPrincipal.lstRel.List(UsrPrincipal.lstRel.ListCount - 1, 4) = Sheets([Ô]Cadastro[Ô]).Range([Ô]E[Ô] & Lin)
UsrPrincipal.lstRel.List(UsrPrincipal.lstRel.ListCount - 1, 5) = Sheets([Ô]Cadastro[Ô]).Range([Ô]F[Ô] & Lin)
UsrPrincipal.lstRel.List(UsrPrincipal.lstRel.ListCount - 1, 6) = Sheets([Ô]Cadastro[Ô]).Range([Ô]G[Ô] & Lin)
UsrPrincipal.lstRel.List(UsrPrincipal.lstRel.ListCount - 1, 7) = Sheets([Ô]Cadastro[Ô]).Range([Ô]H[Ô] & Lin)
UsrPrincipal.lstRel.List(UsrPrincipal.lstRel.ListCount - 1, 8) = Sheets([Ô]Cadastro[Ô]).Range([Ô]I[Ô] & Lin)
UsrPrincipal.lstRel.List(UsrPrincipal.lstRel.ListCount - 1, 9) = Sheets([Ô]Cadastro[Ô]).Range([Ô]J[Ô] & Lin)
UsrPrincipal.lstRel.List(UsrPrincipal.lstRel.ListCount - 1, 10) = Sheets([Ô]Cadastro[Ô]).Range([Ô]K[Ô] & Lin)

End If
Lin = Lin + 1
Loop



MARCELO.TREZE 16/04/2014 08:22:11
#437333
Isso é mesmo um listbox?, nuca vi este código para listbox colega. ou seja listbox não tem coluna e linha

propriedade list do list box

List1.List(valor)

e não

List1.List(linha, coluna)

ps: acredito que o listbox esteja interpretando o seu código como numero quebrado.

exemplo

list1.List(List1.ListCount -1,9) [ô] o listbox não interpreta -1 como coluna, e 9 nove como linha ele interpreta como -1.9 ou seja após 1,9 vem o 2,0 e não 1,10 entendeu.



MARIOANDRADE 16/04/2014 18:45:04
#437368
Citação:

:
Isso é mesmo um listbox?, nuca vi este código para listbox colega. ou seja listbox não tem coluna e linha

propriedade list do list box

List1.List(valor)

e não

List1.List(linha, coluna)

ps: acredito que o listbox esteja interpretando o seu código como numero quebrado.

exemplo

list1.List(List1.ListCount -1,9) [ô] o listbox não interpreta -1 como coluna, e 9 nove como linha ele interpreta como -1.9 ou seja após 1,9 vem o 2,0 e não 1,10 entendeu.






Marcelo, entendi perfeitamente, e sim é um listbox, tentei colocar (-2 ,0 ) e mesmo assim não foi no link abaixo tem o programa, se tiver tempo de dar uma olhada ficarei
grato:

https://www.dropbox.com/s/yp9mpx7unft7wca/MOCCB.xlsm
FILMAN 16/04/2014 22:26:27
#437384
Resposta escolhida
Dim Ultima As Long
Dim i As Long
Dim Valor As String

Valor = cmbRBatizado.Text
Ultima = Sheets([Ô]Cadastro[Ô]).Range([Ô]A65000[Ô]).End(xlUp).Row

[ô]Primeiro a variável Ultima vai trazer a ultima linha preenchida e pode ser usada!
[ô]Segundo Lin e Linha não tem necessidade de uso!

UsrPrincipal.lstRel.ColumnCount = 11

For i = 2 To Ultima - 1 [ô]Utilize o [Ô]-1[Ô] se a sua planilha tiver cabeçalho
If Sheets([Ô]Cadastro[Ô]).Cells(i, 9) = Valor Then
UsrPrincipal.lstRel.AddItem Sheets([Ô]Cadastro[Ô]).Cells(i, 1)
UsrPrincipal.lstRel.List(i - 2, 1) = Sheets([Ô]Cadastro[Ô]).Cells(i, 2)
UsrPrincipal.lstRel.List(i - 2, 2) = Sheets([Ô]Cadastro[Ô]).Cells(i, 3)
UsrPrincipal.lstRel.List(i - 2, 3) = Sheets([Ô]Cadastro[Ô]).Cells(i, 4)
UsrPrincipal.lstRel.List(i - 2, 4) = Sheets([Ô]Cadastro[Ô]).Cells(i, 5)
UsrPrincipal.lstRel.List(i - 2, 5) = Sheets([Ô]Cadastro[Ô]).Cells(i, 6)
UsrPrincipal.lstRel.List(i - 2, 6) = Sheets([Ô]Cadastro[Ô]).Cells(i, 7)
UsrPrincipal.lstRel.List(i - 2, 7) = Sheets([Ô]Cadastro[Ô]).Cells(i, 8)
UsrPrincipal.lstRel.List(i - 2, 8) = Sheets([Ô]Cadastro[Ô]).Cells(i, 9)
UsrPrincipal.lstRel.List(i - 2, 9) = Sheets([Ô]Cadastro[Ô]).Cells(i, 10)
UsrPrincipal.lstRel.List(i - 2, 10) = Sheets([Ô]Cadastro[Ô]).Cells(i, 11)
End If
Next i

Mas o ListBox tem um limite de tamanho das colunas, portanto não aconselho utilizar dessa maneira. Pense em uma outra alternativa!
Tópico encerrado , respostas não são mais permitidas