Estou tentando copiar todas as linhas definidas como "Masculino" ou "Feminino", dependendo da escolha do usuário, como um estudo e teste de conceito para meu trabalho. No entanto, quando tento executar o código, ele repete a primeira linha para a quantidade de linhas que há na tabela principal ou não copia nada se eu selecionar "Feminino".
Meu código é:
Sub Seletion()
Dim CatDes As String
Dim Bsd As Excel.Worksheet
Dim Tst As Excel.Worksheet
Dim NR As Integer
Dim i As Integer
Dim N As Integer
'Variables
CatDes = Sheets("issue sheet").Range("B2").Value
Set Bsd = Excel.Worksheets("Base de dados")
NR = Bsd.Range("a1").End(xlDown).Row - 1
N = 2
'Copy headers
Bsd.Select
Range("A1", Range("A1").End(xlToRight)).Copy
Sheets.Add.Name = "Teste"
'Criar planilha nova
Set Tst = Excel.Worksheets("Teste")
Tst.Range("A1").PasteSpecial Paste:=xlPasteValues
'Copy info
While N <> NR
Bsd.Select
Bsd.Cells(N, 1).Select
Do
If ActiveCell.Offset(0, 4).Value = CatDes Then
Range(ActiveCell, Cells(ActiveCell.Row, ActiveCell.End(xlToRight).Column)).Copy
Tst.Select
Range("A1").Select
'Checar Próxima Celula Vazia
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.PasteSpecial xlPasteValues
Else
End If
N = N + 1
Loop Until N = NR
Wend
End Sub
A ideia é que eu:
- Tenho o gênero que desejo selecionado/digitado (CatDes)
- Saiba quantas linhas existem no banco de dados principal (NR)
- Copie os cabeçalhos do banco de dados principal (já que meu objetivo é criar uma nova planilha como um todo em vez de filtrá-la)
- Copie todas as linhas que tenham o gênero exato que selecionei.
Tentei repetir o processo de verificação de gênero tantas vezes quantas forem as linhas no banco de dados principal, mas não tenho certeza se há uma maneira melhor para isso, daí o "N<>NR". Tentei usar o For I ... Next, mas não tive sucesso. Qualquer ajuda é apreciada
Copiar linhas filtradas como valores