Notifications
Clear all

Macro CriteriaRange

8 Posts
3 Usuários
0 Reactions
1,465 Visualizações
(@ubiratanre)
Posts: 6
Active Member
Topic starter
 

Prezados boa noite!
Estou tetando fazer uma macro que utilize o filtro avançado, porém queria que a minha área de critério recebesse valores oriundos de outras células e não da digitação direta.
Quando digito os valores diretamente na área de critério a macro funciona.
Quando faço a minha área de critério receber valores oriundos de outras células não funciona.
A macro é:

Sub FiltrarParticipantes()
'
' FiltrarParticipantes Macro
'
    Application.CutCopyMode = False
    Sheets("Disponibilidades Participantes").Range("B2:Y402").AdvancedFilter _
        Action:=xlFilterCopy, CriteriaRange:=Range("Filtros!Criteria"), _
        CopyToRange:=Range("G4"), Unique:=True
    Range("B6").Select
End Sub

Alguém tem alguma idéia de como posso resolver?

Grato.

 
Postado : 23/02/2016 8:16 pm
(@leonardo)
Posts: 81
Trusted Member
 

Olá ubiratanre,

Poderia anexar o arquivo?.

 
Postado : 24/02/2016 4:44 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Aparentemente está se referindo a range com divergencia, o que vem a ser "Filtros!Criteria"?
Se for planilha Filtro e range nomeada Criteria, deveria ser algo do tipo :=Sheets("Filtros").range("Criteria"), lembrando que deve se referir a uma unica celula.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 24/02/2016 9:41 am
(@ubiratanre)
Posts: 6
Active Member
Topic starter
 

Prezados, obrigado pela atenção.
Como sou novato em programação VBA fiz via gravação de macro, por isso não sei bem o que está na macro.
Então vou explicar a planilha e o que estou precisando:
1) A planilha "Cadastro Participantes" são algumas informações dos participantes;
2) A planilha "Disponibilidade Participantes" é o meu banco de dados com a disponibilidade ou não de cada participante nos dias da semana;
3) A planilha "Filtro" seria justamente para escolher os filtros a serem aplicados na busca.
Usando a função de filtro avançado você precisa usar o mesmo "nome" na célula filtro da célula do "banco de dados".
Por exemplo: Na planilha "Disponibilidade Participantes" a célula D2 tem o nome "SEGUNDA MANHÃ 1" então, na planilha "Filtro" tem que ter uma célula com o nome "SEGUNDA MANHÃ 1".
Só que eu quero colocar um descritivo mais sugestivo para facilitar para o usuário, então pensei em colocar numa parte da planilha "Filtro" os nomes iguais aos da planilha "Disponibilidade Participantes" só que não visíveis (seria o range I1:AE2).
O usuário iria escolher as condições do filtro (B5:E16) e depois clicar em "FILTRAR" e na coluna G, abaixo de "Participantes" iria aparecer os participantes que satisfazem as condições.
Assim pensei: se fizer I2 = B6 e assim sucessivamente está resolvido. Puro engano, o Filtro não funciona.
Esse é o problema que tenho.
Agradeço antecipadamente a ajuda.

 
Postado : 25/02/2016 9:52 am
(@leonardo)
Posts: 81
Trusted Member
 

Olá ubiratanre,

Fiz por fórmula mesmo. Veja se atende vossa necessidade, caso contrário, retornar.

Fico no aguardo.

 
Postado : 26/02/2016 9:52 am
(@ubiratanre)
Posts: 6
Active Member
Topic starter
 

Leonardo, obrigado pela ajuda.
Não funcionou, pois ao limpar a célula para inserir novo valor a fórmula é substituída pelo valor.
Exemplo:
Ao colocar "N" na célula B6 a fórmula é substituída por "N".
Também o filtro não é aplicado aos dados.

Grato.

 
Postado : 26/02/2016 4:33 pm
(@leonardo)
Posts: 81
Trusted Member
 

ubiratanre,

Veja agora,...

 
Postado : 29/02/2016 2:08 pm
(@ubiratanre)
Posts: 6
Active Member
Topic starter
 

Leonardo, obrigado pela atenção.
Resolvi utilizando listbox.

Grato.

 
Postado : 02/03/2016 11:06 pm