Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Listbox inserir dados na planilha
-
- Acabou de chegar
- Mensagens: 2
- Registrado em: Qua Mar 10, 2021 11:53 am
Listbox inserir dados na planilha
Boa tarde galera, estou fazendo uma planilha para cadastrar consumo de uma lanchonete, fiz um userform para cadastrar o consumo e o nome do cliente na planilha "Vendas", nesse userform tem uma listbox que aparece o que o cliente já consumiu, queria fazer um botão "PAGAR" e quando clicar, inserir a data do pagamento de cada produto listado na listbox daquele cliente na planilha "Vendas" na coluna "H", alguém pode me ajudar por favor?
-
- Acabou de chegar
- Mensagens: 2
- Registrado em: Qua Mar 10, 2021 11:53 am
Re: Listbox inserir dados na planilha
Boa noite, consegui esse código, funciona mas tenho que dar baixa um por um, alguém sabe se tem como fazer com que ele já de baixa em todos os itens da listbox
Private Sub baixa()
Dim linhaPgto As Integer
Dim id As Integer
Dim contador As Integer
contador = 0
For Item = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(Item) = True Then
contador = contador + 1
End If
Next
If contador = 0 Then
MsgBox "Selecione um item para dar baixa", vbExclamation
Else
On Error Resume Next 'para não gerar erro caso o registro não exista
id = Me.TextboxID
'Localiza um registro pelo método find
linhaPgto = Sheets("Vendas").Range("A:A").Find(id).Row
Sheets("Vendas").Cells(linhaPgto, 8) = Format(Me.TBData.Value, "mm/dd/yyyy")
ListBox1.RemoveItem (ListBox1.ListIndex)
End If
End Sub
Private Sub baixa()
Dim linhaPgto As Integer
Dim id As Integer
Dim contador As Integer
contador = 0
For Item = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(Item) = True Then
contador = contador + 1
End If
Next
If contador = 0 Then
MsgBox "Selecione um item para dar baixa", vbExclamation
Else
On Error Resume Next 'para não gerar erro caso o registro não exista
id = Me.TextboxID
'Localiza um registro pelo método find
linhaPgto = Sheets("Vendas").Range("A:A").Find(id).Row
Sheets("Vendas").Cells(linhaPgto, 8) = Format(Me.TBData.Value, "mm/dd/yyyy")
ListBox1.RemoveItem (ListBox1.ListIndex)
End If
End Sub
Re: Listbox inserir dados na planilha
danielboca,
Analisando o código postado por você, percebe-se que a estrutura de repetição está incorreta.
Abaixo, deixo um exemplo de como se pode ter o resultado esperado, sem que dependa de selecionar ou verificar se um item está ou não ativo no ListBox:
Apenas lembrando que, tanto sua rotina quanto a modificada por mim, não verificar qual o item listado no controle ListBox. A baixa é feita verificando apenas o ID contido no TextBoxID do seu formulário.
Analisando o código postado por você, percebe-se que a estrutura de repetição está incorreta.
Abaixo, deixo um exemplo de como se pode ter o resultado esperado, sem que dependa de selecionar ou verificar se um item está ou não ativo no ListBox:
Código: Selecionar todos
Private Sub baixa()
Dim planVendas As Worksheet
Set planVendas = ThisWorkbook.Sheets("Vendas")
If MsgBox("Deseja baixar o pedido " & Me.TextBoxID & " ?", vbQuestion + vbYesNo, "Baixar?") = vbYes Then
For vLinha = 2 To planVendas.Cells(Rows.Count, 1).End(xlUp).Row
If planVendas.Cells(vLinha, 1) = Me.TextBoxID Then
planVendas.Cells(vLinha, 8) = Format(Now, Me.TBData.Value, "mm/dd/yyyy")
End If
Next
End If
MsgBox "Baixa realizada com sucesso!", vbInformation, "Baixa"
Me.ListBox1.Clear
End Sub