Notifications
Clear all

Incluir linhas de Listbox para Banco de Dados

6 Posts
2 Usuários
0 Reactions
1,184 Visualizações
(@rafaelp)
Posts: 89
Trusted Member
Topic starter
 

Bom dia a todos.

Estou trabalhando em uma planilha de lançamentos conforme anexo de exemplo.

Para cada lançamento tenho o "Nome" (textbox1), "Endereço" (textbox2) e os "Produtos" (todos os itens da ListBox2) que podem ser um ou mais conforme adicionado pelo símbolo de "+" da Listbox1 para a Listbox2. Estes dados são alocados na planilha "Banco de Dados".

O que preciso é que se houver mais de um produto selecionado na Listbox2 seja adicionado para cada produto uma linha diferente. Por exemplo, no mesmo lançamento tenho o Nome: Cliente A Endereço: Rua dos Ypes Produtos selecionados: Computador, Teclado e Caneta. Preciso que fique da seguinte forma no banco de dados:

  Nome              Endereço              Produtos
Cliente A        Rua dos Ypes            Computador
Cliente A        Rua dos Ypes              Teclado
Cliente A        Rua dos Ypes              Caneta

Agradeço desde já e tenham um bom dia! :D

 
Postado : 23/08/2016 7:08 am
(@osvaldomp)
Posts: 858
Prominent Member
 

Olá, Rafael.

Veja se ajuda. Substitua o seu código pelo código abaixo.

Private Sub CommandButton1_Click()
 Dim k As Long, m As Long, LR As Long, x As Long
  k = Me.ListBox2.ListCount
  LR = Plan1.Cells(Rows.Count, 1).End(3).Row
   For m = 0 To k - 1
    With Plan1
     .Cells(LR + x + 1, 1) = Me.TextBox1
     .Cells(LR + x + 1, 2) = Me.TextBox2
     .Cells(LR + x + 1, 3) = Me.ListBox2.List(m)
     x = x + 1
    End With
   Next m
End Sub

Osvaldo

 
Postado : 23/08/2016 11:09 am
(@rafaelp)
Posts: 89
Trusted Member
Topic starter
 

Olá Osvaldo,

Cara perfeito, exatamente o que eu precisava!
Cada dia me surpreendo mais com vocês aqui. :mrgreen: hahaha

Muitíssimo obrigado!!

Olá, Rafael.

Veja se ajuda. Substitua o seu código pelo código abaixo.

Private Sub CommandButton1_Click()
 Dim k As Long, m As Long, LR As Long, x As Long
  k = Me.ListBox2.ListCount
  LR = Plan1.Cells(Rows.Count, 1).End(3).Row
   For m = 0 To k - 1
    With Plan1
     .Cells(LR + x + 1, 1) = Me.TextBox1
     .Cells(LR + x + 1, 2) = Me.TextBox2
     .Cells(LR + x + 1, 3) = Me.ListBox2.List(m)
     x = x + 1
    End With
   Next m
End Sub
 
Postado : 23/08/2016 2:15 pm
(@rafaelp)
Posts: 89
Trusted Member
Topic starter
 

Osvaldo,

Não querendo abusar mas apenas uma dúvida:

  LR = Plan1.Cells(Rows.Count, 1).End(3).Row

O que siginica o (3) depois do End nesta parte do código?

 
Postado : 23/08/2016 2:18 pm
(@osvaldomp)
Posts: 858
Prominent Member
 

(1) >> equivale a (xlToLeft)
(2) >> equivale a (xlToRight)
(3) >> equivale a (xlUp)
(4) >> equivale a (xlDown)
;) :P

Osvaldo

 
Postado : 23/08/2016 2:31 pm
(@rafaelp)
Posts: 89
Trusted Member
Topic starter
 

Entendi!
Cara muito obrigado, você me ajudou demais! :D

 
Postado : 23/08/2016 5:38 pm