IMAGENS DO TREEVIEW SOMEM AO REABRIR A PLANILHA
Eu tenho uma treeview em uma planilha q serve como indice para navegar entre as abas, qdo eu dou um duplo clique em algum nó ele vai pra aba. Eu populo ela via vba e utilizo imagens de uma image list para os nós. Eu coloquei as imagens na image list [Ô]na mão[Ô] e uso o key das imagens para escolher qual imagem vai para cada nó. Até aà tudo tranquilo, funciona perfeitamente.
Mas quando eu mando salvar a planilha ele expande todos os nós do treeview, o q é inconveniente mas se fosse só isso dava pra levar, então eu fecho a planilha e qdo eu abro ela de novo todas as imagens dos nós sumiram. E não adianta rodar de novo a rotina q popula a treeview, nada acontece, e olha q eu dou um nodes.clear no inicio da rotina. Nada faz as imagens voltarem, tentei alterar o style da treeview para sem e depois com imagem, tentei inserir uma rotina pra inserir as imagens ao abrir a planilha e por ai vai, mas nda adianta, o unico jeito é deletar a treeview, adicionar outra e rodar a rotina pra popular ela, assim volta tudo ao normal.
Eu até tentei botar uma rotina pra qdo ele abrir a planilha ele deletar o treeview e adicionar outra e popular ela, mas deu uns erros e essa solução seria meio [Ô]porca[Ô].
Alguem faz idéia do q está acontecendo?
Desde já muito obrigado!
Abraços
O código q popula a treeview é esse:
Citação:
Dim nivel1 As String
Dim nivel2 As String
Dim img As String
Sheets([Ô]Ãndice[Ô]).tv_indice.ImageList = Sheets([Ô]TV[Ô]).ImageList_indice
With Sheets([Ô]Ãndice[Ô]).tv_indice.Nodes
.Clear
For i = 2 To 87
If Sheets([Ô]TV[Ô]).Cells(i, 1).Value = 1 Then
img = Sheets([Ô]TV[Ô]).Cells(i, 2).Value
.Add Key:=Sheets([Ô]TV[Ô]).Cells(i, 2).Value & i, Text:=Sheets([Ô]TV[Ô]).Cells(i, 2).Value, Image:=img
nivel1 = Sheets([Ô]TV[Ô]).Cells(i, 2).Value & i
ElseIf Sheets([Ô]TV[Ô]).Cells(i, 1).Value = 2 Then
.Add relative:=nivel1, relationship:=tvwChild, Key:=Sheets([Ô]TV[Ô]).Cells(i, 2).Value & i, Text:=Sheets([Ô]TV[Ô]).Cells(i, 2).Value, Image:=img
nivel2 = Sheets([Ô]TV[Ô]).Cells(i, 2).Value & i
ElseIf Sheets([Ô]TV[Ô]).Cells(i, 1).Value = 3 Then
.Add relative:=nivel2, relationship:=tvwChild, Key:=Sheets([Ô]TV[Ô]).Cells(i, 2).Value & i, Text:=Sheets([Ô]TV[Ô]).Cells(i, 2).Value, Image:=img
End If
Next
End With
Explicando o código: eu tenho uma aba q fica oculta q nela a primeira coluna é o nivel da linha, a segunda é o nome, q junto do número da linha eu tb uso como key, e na terceira coluna tem a aba pra qual ele deve ir, q eu uso na rotina de quando alguem dá um duplo clique no nó. As imagens já estão com o mesmo nome de todos os q são do nivel 1, e todos q estão abaixo dele usam a mesma imagem.
Informação adicional: Uma coisa que estou fazendo que não é usual é q a minha treeview está diretamente na planilha, n está em um form. Outra coisa q notei a pouco é q de tempos em tempos do nada o treeview se expande todo.