EXCEL VBA COPIAR DADOS DE CÉLULA COM CONDI?ÃO.

F4B10 08/06/2017 16:05:58
#474403
Olá a todos! Tenho uma planilha no excel que me traz dados de clientes. Gostaria que quando o usuário clicasse no botão que criei por nome [Ô]Buscar 01 a 04 VC[Ô] ele limpasse o conteúdo das células A30:E46 e fizesse uma busca no intervalo de A2:E26 e colocasse nas células A30:E46 apenas os clientes que fazem parte da 01 a 04 VC. E que no botão [Ô]Buscar 05 A 08 VC[Ô] ele fizesse a mesma coisa, mas trazendo apenas os clientes que fazem parte da 05 a 08 VC. Minha planilha já está parcialmente fazendo isso. Ocorre que quando clico no primeiro botão, ele limpa e traz o filtro que quero, a saber, os dados que se refiram a 01 a 04 VC. Porém quando clico no botão 2 que é para consultar de 05 a 08 VC, ele também traz certinho. Porém se voltar a clicar no primeiro botão (Busca 01 a 04 VC), ele deleta o contéudo referente a 05 a 08 VC e começa a bagunçar as coisas e a duplicar as informações. Segue códigos dos botões:

Botão 1
Sub SETOR_01()
Plan1.Range([Ô]A30:E46[Ô]).ClearContents
ULTIMALINHA = Plan1.Cells(Rows.Count, [Ô]a[Ô]).End(xlUp).Row
lin = 30
For I = 2 To ULTIMALINHA
If Plan1.Cells(I, 4) = [Ô]01 VC[Ô] Or Plan1.Cells(I, 4) = [Ô]02 VC[Ô] Or Plan1.Cells(I, 4) = [Ô]03 VC[Ô] Or Plan1.Cells(I, 4) = [Ô]04 VC[Ô] Then
Plan1.Cells(lin, 1) = Plan1.Cells(I, 1)
Plan1.Cells(lin, 2) = Plan1.Cells(I, 2)
Plan1.Cells(lin, 3) = Plan1.Cells(I, 3)
Plan1.Cells(lin, 4) = Plan1.Cells(I, 4)
Plan1.Cells(lin, 5) = Plan1.Cells(I, 5)
lin = lin + 1

End If

Next
End Sub


Botão 2
Sub SETOR_02()
Plan1.Range([Ô]A50:E66[Ô]).ClearContents
ULTIMALINHA = Plan1.Cells(Rows.Count, [Ô]a[Ô]).End(xlUp).Row
lin = 50
For I = 2 To ULTIMALINHA
If Plan1.Cells(I, 4) = [Ô]05 VC[Ô] Or Plan1.Cells(I, 4) = [Ô]06 VC[Ô] Or Plan1.Cells(I, 4) = [Ô]07 VC[Ô] Or Plan1.Cells(I, 4) = [Ô]08 VC[Ô] Then
Plan1.Cells(lin, 1) = Plan1.Cells(I, 1)
Plan1.Cells(lin, 2) = Plan1.Cells(I, 2)
Plan1.Cells(lin, 3) = Plan1.Cells(I, 3)
Plan1.Cells(lin, 4) = Plan1.Cells(I, 4)
Plan1.Cells(lin, 5) = Plan1.Cells(I, 5)
lin = lin + 1

End If

Next
End Sub



Faça seu login para responder