Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Como enviar dados de várias Textbox's (UserForm1) para Listbox (Userform2)

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Oliver_00
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Sáb Dez 28, 2019 12:01 pm

Como enviar dados de várias Textbox's (UserForm1) para Listbox (Userform2)

Mensagem por Oliver_00 »

Meus amigos, desculpe-me pela ignorância, sou novo no VBA e por aqui.

Tenho algumas Textbox's num "Userform2 Auxiliar" que servirá para preencher uma LISTBOX (listbox_rotina) em um "UserForm1 de Lançamento para o Excel".

* Tentei fazer referência do objeto de destino, tipo: "Userform1.listbox_rotina.objeto = ... (do UserForm2)"
* Tentei colocar como variável Global as informações do UserForm2 num Módulo para fazer com que o VBA reconheça e lance os valores no UserForm1.

Porém estas duas situações se mostraram ineficazes. Servem para preencher a linha "Zero" da ListBox, mas não as demais. Dá a mensagem de Erro: 381 Não foi possível definir a propriedade List. Índice de Matriz de propriedade inválido. (Parece que está faltando a configuração de alguma propriedade, isso no meu entender, para a solução do caso.

Segue o Código onde dá o erro.
O código pára sempre no Caso 3 / (...)
.List(1, 0) = naturezad11j:

Private Sub listbox_rotina_Change()

txt_datalc.Enabled = False
cmb_tipolc.Enabled = True

Dim num As Integer

txt_datalc.Locked = True
txt_datalc.TabStop = False
cmb_tipolc.Text = ""

num = listbox_rotina.ListIndex 'O Código fornece o num da linha da escolha

Select Case num
Case 0 'Lançamento Normal
Call desabilitar_campos

cmb_tipolc.BackColor = &H80000005

Case 1 'Lançamento ContraCheque
Call desabilitar_campos

cmb_tipolc.BackColor = &H80000005
cmb_tipolc.Text = "4ª Fórm.: DD / CC"

lbl_debito.Enabled = False
cmd_debito.Enabled = False
txt_cod_debito.Enabled = False
txt_cod_debito.BackColor = &H8000000F 'ForeColor Cor UserForm
txt_nom_debito.Enabled = False
txt_nom_debito.BackColor = &H8000000F 'ForeColor Cor UserForm
txt_nom_debito.Text = "Vários"
txt_nom_credito.Text = "Vários"
'listbox_contas.Enabled = True
listbox_contas.BackColor = &H8000000F 'backcolor da cor do userform

lbl_mpgto.Visible = True
cmd_mpgto1.Visible = True
txt_mpgto.Visible = True
lbl_apgto.Visible = True
cmd_apgto.Visible = True
txt_apgto.Visible = True
cmd_confirma.Visible = True
cmd_confirma.Enabled = False

Case 2 'Lançamento Orçamento
Call desabilitar_campos
cmb_tipolc.BackColor = &H80000005 'Fundo Branco
cmb_tipolc.Text = "4ª Fórm.: DD / CC"
lbl_mpgto.Visible = True
cmd_mpgto1.Visible = True
txt_mpgto.Visible = True
lbl_apgto.Visible = True
cmd_apgto.Visible = True
txt_apgto.Visible = True
cmd_confirma.Visible = True
cmd_confirma.Enabled = False

Case 3 ' Lançamento Almoço/Jantar
Call desabilitar_campos
cmb_tipolc.BackColor = &H80000005 'Fundo Branco
cmb_tipolc.Text = "4ª Fórm.: DD / CC"

With listbox_contas
.ColumnCount = 10
.ColumnWidths = "50pt;0pt;0pt;0pt;0pt;0pt;50pt;120pt;40pt;150pt"
.AddItem
.List(0, 0) = naturezad11
.List(0, 1) = codgrupod11
.List(0, 2) = nomegrupod11
.List(0, 3) = codsubgrupod11
.List(0, 4) = nomesubgrupod11
.List(0, 5) = codcontad11
.List(0, 6) = codcontaapd11
.List(0, 7) = nomecontad11
.List(0, 8) = Format(valord11, "#,##0.00")
.List(0, 9) = descricaod11

.List(1, 0) = naturezad11j
.List(1, 1) = codgrupod11j
.List(1, 2) = nomegrupod11j
.List(1, 3) = codsubgrupod11j
.List(1, 4) = nomesubgrupod11j
.List(1, 5) = codcontad11j
.List(1, 6) = codcontaapd11j
.List(1, 7) = nomecontad11j
.List(1, 8) = Format(valord11j, "#,##0.00")
.List(1, 9) = descricaod11j

.List(2, 0) = naturezad21
.List(2, 1) = codgrupod21
.List(2, 2) = nomegrupod21
.List(2, 3) = codsubgrupod21
.List(2, 4) = nomesubgrupod21
.List(2, 5) = codcontad21
.List(2, 6) = codcontaapd21
.List(2, 7) = nomecontad21
.List(2, 8) = Format(valord21, "#,##0.00")
.List(2, 9) = descricaod21

.List(3, 0) = naturezad21j
.List(3, 1) = codgrupod21j
.List(3, 2) = nomegrupod21j
.List(3, 3) = codsubgrupod21j
.List(3, 4) = nomesubgrupod21j
.List(3, 5) = codcontad21j
.List(3, 6) = codcontaapd21j
.List(3, 7) = nomecontad21j
.List(3, 8) = Format(valord21j, "#,##0.00")
.List(3, 9) = descricaod21j

.List(4, 0) = naturezac11
.List(4, 1) = codgrupoc11
.List(4, 2) = nomegrupoc11
.List(4, 3) = codsubgrupoc11
.List(4, 4) = nomesubgrupoc11
.List(4, 5) = codcontac11
.List(4, 6) = codcontaapc11
.List(4, 7) = nomecontac11
.List(4, 8) = Format(valorc11, "#,##0.00")
.List(4, 9) = descricaoc11

.List(5, 0) = naturezac11j
.List(5, 1) = codgrupoc11j
.List(5, 2) = nomegrupoc11j
.List(5, 3) = codsubgrupoc11j
.List(5, 4) = nomesubgrupoc11j
.List(5, 5) = codcontac11j
.List(5, 6) = codcontaapc11j
.List(5, 7) = nomecontac11j
.List(5, 8) = Format(valorc11j, "#,##0.00")
.List(5, 9) = descricaoc11j

.List(6, 0) = naturezac21
.List(6, 1) = codgrupoc21
.List(6, 2) = nomegrupoc21
.List(6, 3) = codsubgrupoc21
.List(6, 4) = nomesubgrupoc21
.List(6, 5) = codcontac21
.List(6, 6) = codcontaapc21
.List(6, 7) = nomecontac21
.List(6, 8) = Format(valorc21, "#,##0.00")
.List(6, 9) = descricaoc21

.List(7, 0) = naturezac12
.List(7, 1) = codgrupoc12
.List(7, 2) = nomegrupoc12
.List(7, 3) = codsubgrupoc12
.List(7, 4) = nomesubgrupoc12
.List(7, 5) = codcontac12
.List(7, 6) = codcontaapc12
.List(7, 7) = nomecontac12
.List(7, 8) = Format(valorc12, "#,##0.00")
.List(7, 9) = descricaoc12

.List(8, 0) = naturezac12j
.List(8, 1) = codgrupoc12j
.List(8, 2) = nomegrupoc12j
.List(8, 3) = codsubgrupoc12j
.List(8, 4) = nomesubgrupoc12j
.List(8, 5) = codcontac12j
.List(8, 6) = codcontaapc12j
.List(8, 7) = nomecontac12j
.List(8, 8) = Format(valorc12j, "#,##0.00")
.List(8, 9) = descricaoc12j

End With

End Select

End Sub


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Como enviar dados de várias Textbox's (UserForm1) para Listbox (Userform2)

Mensagem por srobles »

Oliver_00,

Acredito que o erro esteja ocorrendo, pois apenas um item é adicionado ao ListBox, perceba a instrução .AddItem :

Código: Selecionar todos

With listbox_contas
.ColumnCount = 10
.ColumnWidths = "50pt;0pt;0pt;0pt;0pt;0pt;50pt;120pt;40pt;150pt"
.AddItem
.List(0, 0) = naturezad11
.List(0, 1) = codgrupod11
.List(0, 2) = nomegrupod11
.List(0, 3) = codsubgrupod11
.List(0, 4) = nomesubgrupod11
.List(0, 5) = codcontad11
.List(0, 6) = codcontaapd11
.List(0, 7) = nomecontad11
.List(0, 8) = Format(valord11, "#,##0.00")
.List(0, 9) = descricaod11

.List(1, 0) = naturezad11j
.List(1, 1) = codgrupod11j
.List(1, 2) = nomegrupod11j
.List(1, 3) = codsubgrupod11j
.List(1, 4) = nomesubgrupod11j
.List(1, 5) = codcontad11j
.List(1, 6) = codcontaapd11j
.List(1, 7) = nomecontad11j
.List(1, 8) = Format(valord11j, "#,##0.00")
.List(1, 9) = descricaod11j

.List(2, 0) = naturezad21
.List(2, 1) = codgrupod21
.List(2, 2) = nomegrupod21
.List(2, 3) = codsubgrupod21
.List(2, 4) = nomesubgrupod21
.List(2, 5) = codcontad21
.List(2, 6) = codcontaapd21
.List(2, 7) = nomecontad21
.List(2, 8) = Format(valord21, "#,##0.00")
.List(2, 9) = descricaod21

.List(3, 0) = naturezad21j
.List(3, 1) = codgrupod21j
.List(3, 2) = nomegrupod21j
.List(3, 3) = codsubgrupod21j
.List(3, 4) = nomesubgrupod21j
.List(3, 5) = codcontad21j
.List(3, 6) = codcontaapd21j
.List(3, 7) = nomecontad21j
.List(3, 8) = Format(valord21j, "#,##0.00")
.List(3, 9) = descricaod21j

.List(4, 0) = naturezac11
.List(4, 1) = codgrupoc11
.List(4, 2) = nomegrupoc11
.List(4, 3) = codsubgrupoc11
.List(4, 4) = nomesubgrupoc11
.List(4, 5) = codcontac11
.List(4, 6) = codcontaapc11
.List(4, 7) = nomecontac11
.List(4, 8) = Format(valorc11, "#,##0.00")
.List(4, 9) = descricaoc11

.List(5, 0) = naturezac11j
.List(5, 1) = codgrupoc11j
.List(5, 2) = nomegrupoc11j
.List(5, 3) = codsubgrupoc11j
.List(5, 4) = nomesubgrupoc11j
.List(5, 5) = codcontac11j
.List(5, 6) = codcontaapc11j
.List(5, 7) = nomecontac11j
.List(5, 8) = Format(valorc11j, "#,##0.00")
.List(5, 9) = descricaoc11j

.List(6, 0) = naturezac21
.List(6, 1) = codgrupoc21
.List(6, 2) = nomegrupoc21
.List(6, 3) = codsubgrupoc21
.List(6, 4) = nomesubgrupoc21
.List(6, 5) = codcontac21
.List(6, 6) = codcontaapc21
.List(6, 7) = nomecontac21
.List(6, 8) = Format(valorc21, "#,##0.00")
.List(6, 9) = descricaoc21

.List(7, 0) = naturezac12
.List(7, 1) = codgrupoc12
.List(7, 2) = nomegrupoc12
.List(7, 3) = codsubgrupoc12
.List(7, 4) = nomesubgrupoc12
.List(7, 5) = codcontac12
.List(7, 6) = codcontaapc12
.List(7, 7) = nomecontac12
.List(7, 8) = Format(valorc12, "#,##0.00")
.List(7, 9) = descricaoc12

.List(8, 0) = naturezac12j
.List(8, 1) = codgrupoc12j
.List(8, 2) = nomegrupoc12j
.List(8, 3) = codsubgrupoc12j
.List(8, 4) = nomesubgrupoc12j
.List(8, 5) = codcontac12j
.List(8, 6) = codcontaapc12j
.List(8, 7) = nomecontac12j
.List(8, 8) = Format(valorc12j, "#,##0.00")
.List(8, 9) = descricaoc12j

End With
Acredito que adicionando a mesma instrução nos espaços em branco (entre os itens 9 e 0 respectivamente), possa resolver seu problema.

Código: Selecionar todos

With .listbox_contas
.ColumnCount = 10
.ColumnWidths = "50pt;0pt;0pt;0pt;0pt;0pt;50pt;120pt;40pt;150pt"
.AddItem
.List(0, 0) = naturezad11
.List(0, 1) = codgrupod11
.List(0, 2) = nomegrupod11
.List(0, 3) = codsubgrupod11
.List(0, 4) = nomesubgrupod11
.List(0, 5) = codcontad11
.List(0, 6) = codcontaapd11
.List(0, 7) = nomecontad11
.List(0, 8) = Format(valord11, "#,##0.00")
.List(0, 9) = descricaod11

.AddItem
.List(1, 0) = naturezad11j
.List(1, 1) = codgrupod11j
.List(1, 2) = nomegrupod11j
.List(1, 3) = codsubgrupod11j
.List(1, 4) = nomesubgrupod11j
.List(1, 5) = codcontad11j
.List(1, 6) = codcontaapd11j
.List(1, 7) = nomecontad11j
.List(1, 8) = Format(valord11j, "#,##0.00")
.List(1, 9) = descricaod11j

.AddItem
.List(2, 0) = naturezad21
.List(2, 1) = codgrupod21
.List(2, 2) = nomegrupod21
.List(2, 3) = codsubgrupod21
.List(2, 4) = nomesubgrupod21
.List(2, 5) = codcontad21
.List(2, 6) = codcontaapd21
.List(2, 7) = nomecontad21
.List(2, 8) = Format(valord21, "#,##0.00")
.List(2, 9) = descricaod21

.AddItem
.List(3, 0) = naturezad21j
.List(3, 1) = codgrupod21j
.List(3, 2) = nomegrupod21j
.List(3, 3) = codsubgrupod21j
.List(3, 4) = nomesubgrupod21j
.List(3, 5) = codcontad21j
.List(3, 6) = codcontaapd21j
.List(3, 7) = nomecontad21j
.List(3, 8) = Format(valord21j, "#,##0.00")
.List(3, 9) = descricaod21j

.AddItem
.List(4, 0) = naturezac11
.List(4, 1) = codgrupoc11
.List(4, 2) = nomegrupoc11
.List(4, 3) = codsubgrupoc11
.List(4, 4) = nomesubgrupoc11
.List(4, 5) = codcontac11
.List(4, 6) = codcontaapc11
.List(4, 7) = nomecontac11
.List(4, 8) = Format(valorc11, "#,##0.00")
.List(4, 9) = descricaoc11

.AddItem
.List(5, 0) = naturezac11j
.List(5, 1) = codgrupoc11j
.List(5, 2) = nomegrupoc11j
.List(5, 3) = codsubgrupoc11j
.List(5, 4) = nomesubgrupoc11j
.List(5, 5) = codcontac11j
.List(5, 6) = codcontaapc11j
.List(5, 7) = nomecontac11j
.List(5, 8) = Format(valorc11j, "#,##0.00")
.List(5, 9) = descricaoc11j

.AddItem
.List(6, 0) = naturezac21
.List(6, 1) = codgrupoc21
.List(6, 2) = nomegrupoc21
.List(6, 3) = codsubgrupoc21
.List(6, 4) = nomesubgrupoc21
.List(6, 5) = codcontac21
.List(6, 6) = codcontaapc21
.List(6, 7) = nomecontac21
.List(6, 8) = Format(valorc21, "#,##0.00")
.List(6, 9) = descricaoc21

.AddItem
.List(7, 0) = naturezac12
.List(7, 1) = codgrupoc12
.List(7, 2) = nomegrupoc12
.List(7, 3) = codsubgrupoc12
.List(7, 4) = nomesubgrupoc12
.List(7, 5) = codcontac12
.List(7, 6) = codcontaapc12
.List(7, 7) = nomecontac12
.List(7, 8) = Format(valorc12, "#,##0.00")
.List(7, 9) = descricaoc12

.AddItem
.List(8, 0) = naturezac12j
.List(8, 1) = codgrupoc12j
.List(8, 2) = nomegrupoc12j
.List(8, 3) = codsubgrupoc12j
.List(8, 4) = nomesubgrupoc12j
.List(8, 5) = codcontac12j
.List(8, 6) = codcontaapc12j
.List(8, 7) = nomecontac12j
.List(8, 8) = Format(valorc12j, "#,##0.00")
.List(8, 9) = descricaoc12j

End With
Outra coisa á se levar em conta, é referenciar o UserForm ao qual este controle ListBox pertence, exemplo :

Código: Selecionar todos

'Aqui vai sua rotina, até o ponto de enviar os dados para o ListBox
With UserForm1
   'Use o exemplo deixado acima
End With
Ou

Código: Selecionar todos

'Aqui vai sua rotina, até o ponto de enviar os dados para o ListBox
With UserForm2
   'Use o exemplo deixado acima
End With


Oliver_00
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Sáb Dez 28, 2019 12:01 pm

Re: Como enviar dados de várias Textbox's (UserForm1) para Listbox (Userform2) [RESOLVIDO]

Mensagem por Oliver_00 »

SRobles,
Deu certo, amigo. Estava tentando usar o mesmo procedimento utilizado com variáveis (.list(x,0)). Entendi a lógica. Obrigado.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder