CRIANDO LISTVIEW VIA CODIGO...
Pessoal...
Como faço para criar um ListView via código sem precisar referênciar a biblioteca/controle ???
Tentei assim:
Mas deu erro:
[txt-color=#e80000]Erro: 462
The remote server machine does not exist or is unavailable.[/txt-color]
e aponta para a linha:
Como faço para criar um ListView via código sem precisar referênciar a biblioteca/controle ???
Tentei assim:
Sub Lista()
Dim objLst As Object
Set objLst = CreateObject([Ô]MSComctlLib.ListViewCtrl.2[Ô], [Ô]MSCOMCTL.OCX[Ô])
Set objLst = Controls.Add([Ô]MSComctlLib.ListViewCtrl.2[Ô], [Ô]MyLst[Ô], Form1)
With objLst
.Left = 75
.Top = 240
.Height = 2500
.Width = 2500
.Visible = True
End With
End Sub
Mas deu erro:
[txt-color=#e80000]Erro: 462
The remote server machine does not exist or is unavailable.[/txt-color]
e aponta para a linha:
Set objLst = CreateObject([Ô]MSComctlLib.ListViewCtrl.2[Ô], [Ô]MSCOMCTL.OCX[Ô])
Faz assim Danleon
Option Explicit
Dim WithEvents objLst As VBControlExtender
Sub Lista()
Licenses.Add [Ô]MSComctlLib.listviewctrl[Ô]
Set objLst = Controls.Add([Ô]MSComctlLib.listviewctrl[Ô], [Ô]MyLst[Ô], Form1)
With objLst
.Left = 75
.Top = 240
.Height = 2500
.Width = 2500
.Visible = True
End With
End Sub
porém existe uma questão:
Observe a linha de código : Dim WithEvents ctltree As VBControlExtender
A fim de programar os eventos para um controle não referenciado, devemos declarar uma variável objeto usando a chave WithEvents como um objeto VBControlExtender e definir a variável objeto pela referência retornada via método Add. A seguir devemos usar o evento ObjectEvent do objeto VBControlExtender .
Assim para programar um evento do controle Listview inserido devemos usar o seguinte código:(No caso estamos programando o evento Click )
Você só não pode associar um controle intrinseco do VB á variável VBControlExtender pois ocorrerá um erro de tipo incompatÃvel ( Mismatch error).
obs: códigos adaptados usando com referência o site MACORATTI
Observe a linha de código : Dim WithEvents ctltree As VBControlExtender
A fim de programar os eventos para um controle não referenciado, devemos declarar uma variável objeto usando a chave WithEvents como um objeto VBControlExtender e definir a variável objeto pela referência retornada via método Add. A seguir devemos usar o evento ObjectEvent do objeto VBControlExtender .
Assim para programar um evento do controle Listview inserido devemos usar o seguinte código:(No caso estamos programando o evento Click )
Private Sub objlst_objectEvent(info As EventInfo)
Select Case info
Case [Ô]Click[Ô]
MsgBox [Ô]Voce clicou no controle [Ô]
End Select
End Sub
Você só não pode associar um controle intrinseco do VB á variável VBControlExtender pois ocorrerá um erro de tipo incompatÃvel ( Mismatch error).
obs: códigos adaptados usando com referência o site MACORATTI
Valeu Marcelo !
Na verdade o que está acontecendo é que tenho uma planilha que tem um UserForm com um ListView...como na minha máquina eu apontei o controle, funciona perfeito !
Só que vou enviar a planilha para os demais funcionários, então estou tentando fazer com que não precise referenciar o controle, ou seja, creio que criando via código deve dá certo.
Se tiver algo mais viável diz aê, beleza ?!
Na verdade o que está acontecendo é que tenho uma planilha que tem um UserForm com um ListView...como na minha máquina eu apontei o controle, funciona perfeito !
Só que vou enviar a planilha para os demais funcionários, então estou tentando fazer com que não precise referenciar o controle, ou seja, creio que criando via código deve dá certo.
Se tiver algo mais viável diz aê, beleza ?!
entendi é VBA
Correto amigo !
Mas vou tentar assim mesmo, pois a diferença é pouquÃssima.
Mas vou tentar assim mesmo, pois a diferença é pouquÃssima.
é... não deu certo no VBA...não existe nele a classe[txt-color=#0000f0] VBControlExtender.[/txt-color]
Tópico encerrado , respostas não são mais permitidas