Halk, para não ter de anexar novamente o arquivo, vou postar somente as alterações que devem ser deitas, é só seguir os passos.
1º ) Adicione uma nova Guia e Renomeie para "BaseId" e em "A1" digite "ID" - (todos sem as Aspas)
2º ) Em seu formulário de Pesquisa, no Botão "Filtrar itens selecionados" troque pela rotina abaixo:
Private Sub CommandButton1_Click()
Dim i As Long
Dim x As Long
Dim iRow
Dim UltLin As Long
Dim IdRange As Range
Dim shBaseId As Worksheet
Set shBaseId = Worksheets("BaseId")
'Verifica a Ultima linha preenchida
UltLin = shBaseId.Cells(Rows.Count, "A").End(xlUp).Row
If UltLin = 1 Then
Else
shBaseId.Range("A2:A" & UltLin).ClearContents
Set IdRange = Range("A2:A" & UltLin)
End If
i = 1
Retorno:
Do While i <= Me.lstLista.ListItems.Count
If Not Me.lstLista.ListItems(i).Checked = True Then
Me.lstLista.ListItems.Remove (i)
End If
i = i + 1
Loop
'Verifica se ainda tem algum item desmarcado
'Se tiver retorna até que só fiquem na lista os itens marcados
For i = 1 To Me.lstLista.ListItems.Count
If Not Me.lstLista.ListItems(i).Checked = True Then GoTo Retorno
Next
x = 1
iRow = 1
'Armazena na Aba BaseId os itens marcados
Do While x <= Me.lstLista.ListItems.Count
iRow = iRow + 1
shBaseId.Cells(iRow, 1).Value = lstLista.ListItems(x).Text
x = x + 1
Loop
End Sub
3º ) Copie a rotina abaixo para dentro do modulo dos formulários:
Private Sub RemarcaItens()
Dim IdRange As Range
Dim UltLin As Long
Dim sID
Dim i
'Definimos a aba
Dim shBaseId As Worksheet
Set shBaseId = Worksheets("BaseId")
'Verifica a Ultima linha preenchida
UltLin = shBaseId.Cells(Rows.Count, "A").End(xlUp).Row
Set IdRange = shBaseId.Range("A2:A" & UltLin)
For Each sID In IdRange
For i = 1 To lstLista.ListItems.Count
If lstLista.ListItems(i).Text = sID Then
lstLista.ListItems(i).Checked = True
End If
Next i
Next sID
End Sub
4º ) No Botão "Filtrar" (btnFiltrar) troque pela rotina abaixo:
Private Sub btnFiltrar_Click()
'Limpa o cabeçalho do ListView
lstLista.ColumnHeaders.Clear 'Clear the Column Headers
Call PopulaListBox(txtNomeEmpresa.Text, txtNomeContato.Text, txtEndereco.Text, txtTelefone.Text, txtRegiao.Text)
Call RemarcaItens
End Sub
Refaça os testes e veja se é isto.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 23/07/2014 11:08 am