Notifications
Clear all

FILTRO AVANÇADO

12 Posts
2 Usuários
0 Reactions
2,091 Visualizações
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Olá,

Aqui estou novamente buscando vossa ajuda. Sou novo em VBA e daí aparecerem imensas dúvidas.

Estou tentando fazer um filtro avançado através da escolha de um critério só que aparecem-me alguns problemas:

1) Ao selecionar o critério "COTS", o filtro devolve toda informação da base de dados. Porque será?

2) Ao apagar, macro não apaga a formatação de células. Queria que ficasse tudo em branco mesmo.

3) Se inserir mais informação em base de dados, filtro não devolva toda informação. E ao apagar, também não apaga tudo. Alguém me consegue ajudar?

Envio em anexo o ficheiro.

Obrigado a todos.

 
Postado : 05/01/2013 4:38 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Use a pesquisa eu mesmo tenho alguns exemplos que podem ser adaptáveis.

No teste que fiz seu apagar, está OK
Att

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

 
Postado : 05/01/2013 4:46 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

1)Não havia atentado a isso, mas aparentemente o filtro avançao considera tudo que inicia com o dado do filtro, se puser "C" tambem viara tudo, já como "T" nada e mostrado.
2) Para apagar tudo altere de : Selection.Contents (esse e para apagar os dados da celula) para:Selection.Clear.
3) Não entendi? Pode fornecer mais detalhes?

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

 
Postado : 05/01/2013 4:54 pm
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Olá Reinaldo,

1) Não há forma de contronar esse problema? EU preciso mesmo filtrar só o COTS. Como poderei resolver isso?
2) Está resolvido :)
3) Se inserir na base de dados o próximo cliente - "127" e seguintes dados, o filtro não retorna. Preciso tornar esse processo dinâmico. Quero inserir clientes e que filtro devolva sempre tudo, de acordo com o critério. E o mesmo ao apagar. Estou-me fazendo entender?

 
Postado : 05/01/2013 5:02 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Miguel

1) Como disse não havia ainda atentado a essa caracteristica, carece de uma pesquisa maior, mas talvez seja preciso alterar a rotina.

3) Para manter a range dinamica use:

Sub Filtrar()
Dim lRow As Long
lRow = Sheets("Base Dados").Cells(Cells.Rows.Count, "A").End(xlUp).Row
    Range("G1:G2").Select
    Sheets("Base Dados").Range("A1:D" & lRow).AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("G1:G2"), CopyToRange:=Range("A1:D1"), Unique:=False
End Sub

Sub Apagar()
Dim uRow As Long
uRow = Sheets("Filtro").Cells(Cells.Rows.Count, "A").End(xlUp).Row
    Range("A2:D" & uRow).Select
    Selection.Clear
End Sub

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

 
Postado : 05/01/2013 5:27 pm
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Segue o modelo adaptado. Deste modo, já se encontra bem próximo daquilo que pretendo. Acha que devo fazer alguma melhoria a nível de VBA?

Relativamente ao ponto 1, não consigo encontrar solução. :(

 
Postado : 05/01/2013 6:52 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Veja se te ajuda...
http://www.sendspace.com/file/iv1v2q

Att

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

 
Postado : 05/01/2013 9:45 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Vivendo e aprendendo, creio que o proposto pelo colega Alexandre resolve o problema do primeiro item.

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

 
Postado : 06/01/2013 7:14 am
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Valeu Alexandre. Deu uma grande ajuda.

O único problema é que isso pode gerar confusão no pessoal que utilizar arquivo. Mas se for unica maneira de fazer este filtro, valeu mesmo :)

Muito Obrigado pela vossa ajuda.

 
Postado : 06/01/2013 8:46 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Miguel, isso pode ficar "invisivel" à quem for utilizar o arquivo.

Basta fazer a seleção do filtro em uma celula (sem o valor de igual), veja no exemplo a macro "olha" l6:l7; e a seleção é feita em J13

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

 
Postado : 06/01/2013 10:34 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Apesar de ja estar como resolvido, segue mais uma sugestão, onde não utilizamos a formula na Celula, mas sim com a condição na rotina e AutoFilter pelo Campo e destinando o resultado para outra aba.

Depois vou ver se encontro, eu tinha um exemplo onde utilizamos todos os criterio, assim que encontrar eu anexo, alias pelas sugestões postadas aqui, acredito que merecem serem colocadas na Bibiloteca.

[]s

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

 
Postado : 06/01/2013 11:20 am
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Foram todos espetaculares na ajuda que me deram.

Um muito obrigado:
Alexandre
Reinaldo
Mauro Coutinho

Melhores cumprimentos. É um orgulho pertencer a este forum.

 
Postado : 06/01/2013 3:53 pm