Página 1 de 1

Multi seleção em Listbox

Enviado: 10 Ago 2018 às 13:54
por Joaopmata182
Boa tarde à todos!
Ontem pedi ajuda para resolver um problema que estava tendo em uma listbox, cujo o mesmo era:
alterar um valor de acordo com o um double click na listbox. Fui ajudado e realmente funcionou, porém hoje
percebi que preciso de realizar o mesmo comando, porém selecionando mais de uma linha na listbox.
Tentei usar listbox1.Selected , listbox1.Multiselect,
só que nenhum desses comandos estão resolvendo meu problema.
Seria possível uma ajuda?
Segue o código e planilha em anexo
Obrigado

Private Sub CommandButton1_Click()
Editar = ListBox1.ListIndex
COD = ListBox1.List(Editar, 0)
VERIFICAR = ListBox1.List(Editar, 17)
resp = MsgBox("Confirmar?", vbYesNo, "")
If resp = vbYes Then
Sheets("joao").Select
Range("b3").Select


Do

If ActiveCell.Value = COD Then

ActiveCell.Select
ActiveCell.Offset(0, 17).Select

If VERIFICAR = "NÃO PAGO" Then
ActiveCell.Value = "PAGO"
ListBox1.List(Editar, 17) = "PAGO"
Else
ActiveCell.Value = "NÃO PAGO"
ListBox1.List(Editar, 17) = "NÃO PAGO"
End If

Exit Sub

End If
If ActiveCell.Value = "" Then
Exit Sub
End If

ActiveCell.Offset(1, 0).Select

Loop

Else
Exit Sub

End If

End Sub

Multi seleção em Listbox

Enviado: 12 Ago 2018 às 08:55
por mprudencio
Pessoalmente eu faria o seguinte:

A cada item a dar baixa na planilha eu daria um double_click.

A chance de o usuario cometer erros diminui

Eu uso assim em uma planilha minha e funciona bem.

Por mais que sejam muitas contas a dar baixa no pagamento nao são mais que 10, 20 contas no dia.

No meu caso eu deixo em ordem pela data de vencimento assim as mais proximas do vencimento estao sempre em cima e fica facil localizar.

Re: Multi seleção em Listbox

Enviado: 12 Ago 2018 às 09:59
por Joaopmata182
Consegui resolver esse problema usando o comando Selected com o listcount e funcionou. Usei o find colocando como condição a coluna de código do meu listbox.

Private Sub CommandButton3_Click()

For I = 0 To (ListBox1.ListCount - 1)
If ListBox1.Selected(I) = True Then
Sheets(ComboBox1.Value).Select
Cells.find(What:=ListBox1.List(I, 0), After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
If ActiveCell.Offset(0, 18) = "NÃO PAGO" Then
ActiveCell.Offset(0, 18).Value = "PAGO"
ListBox1.List(I, 18) = "PAGO"
Else
ActiveCell.Offset(0, 18).Value = "NÃO PAGO"
ListBox1.List(I, 18) = "NÃO PAGO"
End If
End If

Next
End Sub