Fábio, sugiro que baixe o arquivo no link abaixo, eu mostro alguns conceitos básicos de se trabalhar com ListView, na criação de Colunas, Itens e SubItens:
LISTVIEW NO EXCEL - ALGUNS CONCEITOS
http://www.tomasvasquez.com.br/forum/vi ... f=17&t=571
No Forum acima, em DICAS, encontrara outros exemplos dde ListView :
http://www.tomasvasquez.com.br/forum/viewforum.php?f=17
Quanto a sua questão, vamos utilizar a Lógica, você tentou adaptar uma outra rotina "Preenche Listview" para o seu modelo, mas não copiou todas as instruções, ou seja :
' Adiciona as colunas
With ListView4
.ColumnHeaders.Clear 'Limpa as Colunas
.Gridlines = True 'Propriedade Grade
.View = lvwReport 'Propriedade Modo de Visualização
End With
Depois temos :
Conta a quantidade de itens na Coluna "a"
lastRow = Contratos.Cells(Contratos.Cells.Rows.Count, "a").End(xlUp).Row
E, em seguida :
' Adiciona itens ao ListView
For X = 2 To lastRow
Set li = ListView4.Listitems.Add(Text:=Contratos.Cells(X, "a").Value)
li.ListSubItems.Add Text:=Contratos.Cells(X, "b").Value
k = k + 1
Next
Ok, nas instruções acima estamos preenchendo o LVW somente com os dados das Colunas "a e b", mas o porem é, porque não é mostrado o ListView preenchido ?
Resposta : Porque não Criamos as COLUNAS para exibição dos itens.
Então devemos acrescentar as instruções para cria-las antes, ficando :
With ListView4
.ColumnHeaders.Clear 'Limpamos as Colunas Existentes
.Gridlines = True
.View = lvwReport
'e ReCriamos as Colunas
.ColumnHeaders.Add Text:="Nome", Width:=70
.ColumnHeaders.Add Text:="Vencimento", Width:=50
.ColumnHeaders.Add Text:="Data Atual", Width:=50
.ColumnHeaders.Add Text:="Faltam", Width:=50
.ColumnHeaders.Add Text:="Lembrete", Width:=50
.ColumnHeaders.Add Text:="Aniversario", Width:=50
End With
E para adicionar os itens referentes as Colunas "A" até "E", alteramos as linhas para:
' Adiciona itens
For X = 2 To lastRow
Set li = ListView4.Listitems.Add(Text:=Contratos.Cells(X, "a").Value)
li.ListSubItems.Add Text:=Contratos.Cells(X, "b").Value
li.ListSubItems.Add Text:=Contratos.Cells(X, "c").Value
li.ListSubItems.Add Text:=Contratos.Cells(X, "d").Value
li.ListSubItems.Add Text:=Contratos.Cells(X, "e").Value
'k = k + 1
Next
A Variável "k" está desabilitada, devido a mesma não ter nada a ver com o contexto da rotina.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 13/03/2012 4:37 pm