Página 1 de 1

Copiar dados filtrados para uma outra folha

Enviado: 01 Abr 2020 às 04:17
por CSoares
Bom dia a todos

Queria criar uma tabela com dados filtrados, a partir de uma folha 1, onde está a base de dados.
Na folha 1 tenho a base de dados com várias colunas
Na folha 2 tenho uma célula onde selecciono o critério através de uma lista pendente, e uma tabela que sería preenchida com a informação da base de dados.

Por exemplo: Na folha 2 quero uma tabela com uma listagem de todas as "Laranjas"

Em anexo envio um ficheiro para explicar melhor.

Obrigado pela ajuda

Re: Copiar dados filtrados para uma outra folha

Enviado: 01 Abr 2020 às 09:39
por osvaldomp
Se você quiser experimentar uma solução via macro, então instale uma cópia do código abaixo no módulo da planilha Folha2.
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim LR As Long
  If Target.Count > 1 Then Exit Sub
  If Target.Address <> "$C$4" Then Exit Sub
  LR = Cells.Find("*", , xlValues, , xlRows, xlPrevious).Row
  If LR > 4 Then Range("F5:O" & LR).Value = ""
  If Target.Value <> "" Then
   With Sheets("Folha1")
    On Error Resume Next
    .ShowAllData
    On Error GoTo 0
    .[A2:K2].AutoFilter 1, Target.Value
    .Range("B3:K" & .Cells(Rows.Count, 1).End(3).Row).Copy
    [F5].PasteSpecial xlValues
    .ShowAllData
   End With
  End If
End Sub

Re: Copiar dados filtrados para uma outra folha

Enviado: 01 Abr 2020 às 10:00
por Deciog
CSoares , Bom Dia.

Confere se é desta forma que desejas

Se minha resposta foi útil, clique em obrigado é uma forma de agradecimento da ajuda

Decio

Copiar dados filtrados para uma outra folha

Enviado: 01 Abr 2020 às 15:36
por CSoares
Obrigado, acho que funcionou na perfeição, jamais conseguiria fazer uma fórmula tão grande e complexa :-)

Muito obrigado a todos

Re: Copiar dados filtrados para uma outra folha

Enviado: 01 Abr 2020 às 15:43
por CSoares
Criei uma macro, copiei o codigo que me enviou, associei a macro a um botão, mas quando corro surge um erro.
Em anexo envio uma imagem para saber onde estou a cometer o erro.
Obrigado
osvaldomp escreveu:Se você quiser experimentar uma solução via macro, então instale uma cópia do código abaixo no módulo da planilha Folha2.
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim LR As Long
  If Target.Count > 1 Then Exit Sub
  If Target.Address <> "$C$4" Then Exit Sub
  LR = Cells.Find("*", , xlValues, , xlRows, xlPrevious).Row
  If LR > 4 Then Range("F5:O" & LR).Value = ""
  If Target.Value <> "" Then
   With Sheets("Folha1")
    On Error Resume Next
    .ShowAllData
    On Error GoTo 0
    .[A2:K2].AutoFilter 1, Target.Value
    .Range("B3:K" & .Cells(Rows.Count, 1).End(3).Row).Copy
    [F5].PasteSpecial xlValues
    .ShowAllData
   End With
  End If
End Sub

Re: Copiar dados filtrados para uma outra folha

Enviado: 01 Abr 2020 às 16:18
por osvaldomp
Instale uma cópia do código no módulo da planilha, assim:

1. copie o código que passei
2. clique com o direito na guia da planilha Folha2 e escolha 'Exibir Código'
3. cole o código na janela em branco que vai se abrir
4. feito! 'Alt+Q' para retornar para a planilha e testar

funcionamento - ao selecionar o critério em C4 da Folha2 e o código irá preencher a tabela; se C4 = vazio então o código irá limpar a tabela

obs. o código está pronto para funcionar, não requer adições e não requer botão, seu funcionamento será automático ao alterar o conteúdo de C4

Copiar dados filtrados para uma outra folha

Enviado: 02 Abr 2020 às 13:08
por CSoares
Funcionou também na perfeição e a implementação é muito simples, apesar do código ser complexo

Muito obrigado aos dois e pela vossa impressionante ajuda :-)