Notifications
Clear all

Filtrar por data e copiar a informação filtrada

16 Posts
3 Usuários
0 Reactions
3,974 Visualizações
(@nmareis)
Posts: 22
Eminent Member
Topic starter
 

Boa noite pessoal,

tenho este código:

Sub Macro1()
'
' Macro1 Macro
'

'
    Windows("Livro 3.xlsx").Activate
    ActiveSheet.Range("$B$1:$R$6").AutoFilter Field:=13, Operator:= _
        xlFilterValues, Criteria2:=Array(2, "3/1/2017")
    Windows("Livro 2.xlsx").Activate
    Range("L17").Select
    ActiveSheet.Range("$B$1:$R$6").AutoFilter Field:=13, Operator:= _
        xlFilterValues, Criteria2:=Array(2, "3/1/2017")
    Windows("Livro 1.xlsx").Activate
    ActiveSheet.Range("$B$1:$R$12").AutoFilter Field:=13, Operator:= _
        xlFilterValues, Criteria2:=Array(2, "3/1/2017")
    Range("H20").Select
    Windows("Livro Final.xlsm").Activate
End Sub

e pretendo colocar nele uma uma InputBox

Dim sData As String 

sData = InputBox("Digite sua data")

isto com o objetivo de apenas colocar a data uma só vez e em todos os ficheiros acontece o filtro por data automáticamente.

alguém me pode ajudar ?

 
Postado : 04/03/2017 6:07 pm
(@vinniz)
Posts: 27
Eminent Member
 

Boa noite,
Fiz a alteração na sua própria estrutura.
Tente algo assim:

Sub Macro1()
'
' Macro1 Macro
'

Dim sData As String

sData = InputBox("Digite sua data")


    Windows("Livro 3.xlsx").Activate
    ActiveSheet.Range("$B$1:$R$6").AutoFilter Field:=13, Operator:= _
        xlFilterValues, Criteria2:=Array(2, sData)
    Windows("Livro 2.xlsx").Activate
    Range("L17").Select
    ActiveSheet.Range("$B$1:$R$6").AutoFilter Field:=13, Operator:= _
        xlFilterValues, Criteria2:=Array(2, sData)
    Windows("Livro 1.xlsx").Activate
    ActiveSheet.Range("$B$1:$R$12").AutoFilter Field:=13, Operator:= _
        xlFilterValues, Criteria2:=Array(2, sData)
    Range("H20").Select
    Windows("Livro Final.xlsm").Activate
End Sub

Se não funcionar, envie seu arquivo modelo para verificarmos melhor.

abraços,
Vinicius

 
Postado : 04/03/2017 6:45 pm
(@jpedro)
Posts: 111
Estimable Member
 

nmareis, boa noite.

Assim funciona:

Sub Macro1()

Dim Sdata As Date

Sdata = InputBox("Insira sua data abaixo:")

    Workbooks("Livro 3.xlsx").Activate
    ActiveSheet.Range("$B$1:$R$6").AutoFilter Field:=13, Criteria1:=Format(Sdata, "dd/mm/yyyy")
    Workbooks("Livro 2.xlsx").Activate
    Range("L17").Select
    ActiveSheet.Range("$B$1:$R$6").AutoFilter Field:=13, Criteria1:=Format(Sdata, "dd/mm/yyyy")
    Workbooks("Livro 1.xlsx").Activate
    ActiveSheet.Range("$B$1:$R$12").AutoFilter Field:=13, Criteria1:=Format(Sdata, "dd/mm/yyyy")
    Range("H20").Select
    Workbooks("Livro Final.xlsm").Activate
    
End Sub

Abraços!

 
Postado : 04/03/2017 6:47 pm
(@nmareis)
Posts: 22
Eminent Member
Topic starter
 

agradeço pessoal a ajuda mas ambos os códigos me estão a dar erro...anexo os ficheiros para verem o que me podem fazer..obrigado
o que pretendo é a macro filtre por data e depois copie a informação filtrada e cole a informação, de ambos os livros, no livro final..pode ser a seguir á tabela, em baixo, depois tenho que fazer mais um ajuste..envio os ficheiros em formato rar...é só descompactar...obrigado

 
Postado : 05/03/2017 4:07 am
(@nmareis)
Posts: 22
Eminent Member
Topic starter
 

JPedro

viva será que me pode ajudar?...já coloquei aí os ficheiros para tentar fazer o que lá estou pedindo...se me pudesse ajudar agradecia...obrigado

 
Postado : 05/03/2017 1:57 pm
(@jpedro)
Posts: 111
Estimable Member
 

nmareis, boa noite.

O que vc quer é até simples. Mas como vc quer copiar as informações dos outros livros se o livro final não tem o msm padrão de colunas? alguns títulos das colunas estão diferentes e vai acabar ter dados em lugares errados... Veja e me fale.

Abs!

 
Postado : 05/03/2017 10:00 pm
(@nmareis)
Posts: 22
Eminent Member
Topic starter
 

JPedro

sim é verdade..as colunas estão trocadas...mas não há problema...eu quero é que a macro filtre por data ( a definir por mim ) e depois o que for filtrado é copiado automaticamente para a folha final por baixo da tabela, na coluna B, depois eu arranjo forma de a macro também copiar a informação para os lugares devidos sem problema nenhum, eu já fiz isso, mas a macro a filtrar e a copiar apenas a informação filtrada é que me está a dar dores de cabeça!..se me pudesse ajudar agradecia...brigado

 
Postado : 06/03/2017 3:57 am
(@nmareis)
Posts: 22
Eminent Member
Topic starter
 

cá estão de novo os ficheiros mais limpos...obrigado

 
Postado : 06/03/2017 5:40 pm
(@jpedro)
Posts: 111
Estimable Member
 

nmareis,

Segue pasta. Coloquei o filtro avançado por já ter a opção de copiar os dados filtrados. Ele vai copiar os títulos das colunas. Aí vc pode inserir loop para excluir as linhas a partir da 8 que possua o nome expediente. Não fiz pq vi que no Livro final tbm tem conteúdo na linha 37, então não sei como ficaria...

Qlq coisa vc fala.

 
Postado : 06/03/2017 7:06 pm
(@nmareis)
Posts: 22
Eminent Member
Topic starter
 

JPedro
bom dia amigo....estou a tentar executar mas a macro não funciona..dá-me erro depois de eu inserir a data e não passa daí....obrigado

 
Postado : 07/03/2017 3:42 am
(@jpedro)
Posts: 111
Estimable Member
 

nmareis,

Testei e funcionou tranquilo aqui. As pastas referentes ao 3 livros ficam aberta no momento de executar a macro? Se vc está executando com elas fechadas vai dá erro msm... Se vc não deseja abri manualmente, é possível abrir e fechar via macro.

 
Postado : 07/03/2017 6:52 pm
(@nmareis)
Posts: 22
Eminent Member
Topic starter
 

sim é verdade, com os ficheiros abertos funciona..mas eu não quero que copie os cabeçalhos..onde diz expediente/ordem/freguesia..etc....apenas os dados...as linhas de cabeçalho não ( as que estão a cinza )..e se der para fazer com os ficheiros fechados era o ideal...obrigado

 
Postado : 08/03/2017 6:22 pm
(@nmareis)
Posts: 22
Eminent Member
Topic starter
 

JPedro

Testei e funcionou tranquilo aqui. As pastas referentes ao 3 livros ficam aberta no momento de executar a macro? Se vc está executando com elas fechadas vai dá erro msm... Se vc não deseja abri manualmente, é possível abrir e fechar via macro.

anexo aqui o ficheiro excel final...se der para a macro começar a preencher apartir da linha B39 era o ideal...depois da tabela...e se der sem abrir os ficheiros ainda melhor, mas sem copiar os cabeçalhos ( a cinza, onde diz expediente/ordem/etc)...obrigado

 
Postado : 08/03/2017 6:30 pm
(@jpedro)
Posts: 111
Estimable Member
 

Nelson,

Segue. Explicação no arquivo.

Abs!

 
Postado : 09/03/2017 7:16 pm
(@nmareis)
Posts: 22
Eminent Member
Topic starter
 

JPedro

Está explicadissimo colega...obrigadão..era isto mesmo...já me poupaste alguns minutos de trabalho por dia..lol...abc

 
Postado : 10/03/2017 6:54 pm
Página 1 / 2