Notifications
Clear all

Auto-filtro.Esconder uma linha inteira ao detectar palavras

24 Posts
2 Usuários
0 Reactions
4,595 Visualizações
(@thezein)
Posts: 30
Eminent Member
Topic starter
 

Pessoal,
O pessoal aqui do fórum me deu uma baita ajuda para ordenar a tabela de dados da web automaticamente, agora peço a ajuda de voces para outro 'improvement'.

A minha planilha é atualizada constantemente via Dados da Web e gostaria de poder esconder Linhas inteiras da planilha. Penso em setar uma série de palavras (de acordo com a minha necessidade) e a cada atualizada da planilha o macro (ou programação) identificar estas palavras e esconder as linhas.

EXEMPLO: Segue uma ilustração do que pretendo fazer:

Seto as palavras "Aphyosemion" e "Josecarlosmatosgarcia" (quero setar as palavras de acordo com a minha necessidade)

O filtro ESCONDERÁ (ou removerá) TODAS as colunas que contém estas palavras a cada atualizada na planilha.

Arquivo anexo.
http://www.sendspace.com/file/9rtpmt

Obrigado mais uma vez.

 
Postado : 01/04/2012 12:49 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Não sei se entendi.

Mas teste e veja se vai dar certo, não foi testado.

Sub Teste()
    Dim r As Long, LastRow As Long
    LastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
    For r = LastRow To 2 Step -1
        If Cells(r, 1) <> "Aphyosemion" And _
        Cells(r, 2) <> "Josecarlosmatosgarcia" Then
            Rows(r).EntireRow.Hidden = True
        End If
    Next r
End Sub

Att

 
Postado : 01/04/2012 2:32 pm
(@thezein)
Posts: 30
Eminent Member
Topic starter
 

Aonde eu coloco o codigo ?

 
Postado : 01/04/2012 4:03 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Coloque em um módulo e use a Call, para chamar essa rotina.

Só lembrando que você recebe dados automticamente.

Att

 
Postado : 01/04/2012 4:10 pm
(@thezein)
Posts: 30
Eminent Member
Topic starter
 

Desculpe ai, mas não entendi Alexandre.

 
Postado : 01/04/2012 4:45 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

boa noite!!

Com a sua planilha berta. digite Alt + F11, depois Alt + I + M, e cole a rotina.

Depois de tudo use o comando Call e o nome da rotina dentro do Evento Private sub.
Att

 
Postado : 01/04/2012 4:50 pm
(@thezein)
Posts: 30
Eminent Member
Topic starter
 

Sim. Fiz isso digite "Alt + F11, depois Alt + I + M, e cole a rotina.". Mas a segunda parte "use o comando Call e o nome da rotina dentro do Evento Private sub. ". Não estou sabendo.

 
Postado : 01/04/2012 5:09 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Veja a imagem.

Em baixo de Call Alt_Class

Coloque Call teste esse é o nome da rotina tem que está escrito corretamente, por favor confira.

 
Postado : 01/04/2012 5:12 pm
(@thezein)
Posts: 30
Eminent Member
Topic starter
 

Opa, estamos quase lá !
Na verdade é para esconder/apagar todas as linhas que tem "Aphyosemion" e "Josecarlosmatosgarcia"

 
Postado : 01/04/2012 5:21 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Não entendi, é esconder ou é deletar? :?

Mude a linha de:

Rows(r).EntireRow.Hidden = True

Para:

Rows(r).EntireRow.Delete

faça os teste.

Att

 
Postado : 01/04/2012 5:26 pm
(@thezein)
Posts: 30
Eminent Member
Topic starter
 

Tanto faz, o que quis dizer é que está acontecendo justamente o contrário. As linhas que tem "Aphyosemion" e "Josecarlosgarcia" não devem aparecer.

 
Postado : 01/04/2012 5:27 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Tente minha sugestão e veja se vai dar certo!!

Depois retorne.

Att

 
Postado : 01/04/2012 5:31 pm
(@thezein)
Posts: 30
Eminent Member
Topic starter
 

Não funcionou e travou a planilha toda. Não consegui voltar a como estava antes.
Por favor veja. http://www.sendspace.com/file/c3uhty

 
Postado : 01/04/2012 5:41 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

TheZin, comigo não deu problema!

Mas se alguém não tiver um resposta que resolva seu problema, vou tentar de outra forma.

Tente mudar o comando Call Teste, tire ele de onde mandei colocar, vá até o final da rotina chamada "Alt_Class" e cole !

Att

 
Postado : 01/04/2012 6:17 pm
(@thezein)
Posts: 30
Eminent Member
Topic starter
 

Ai funcionou ? Retirou todas as linhas onde encontram-se aquelas palavaras ? Aqui não descobri o que fiz de errado.

Voce mandou fazer assim ?

Private Sub Worksheet_Change(ByVal Target As Range)
'Classificação automatica
'Dim lrow As Long
'lrow = Range("A" & Rows.Count).End(xlUp).Row
'If Range("F" & lrow).Value <> "" Then 'Se os dados for preenchidos de A até D
'    [A2:F1000].Sort Key1:=[E1], Order1:=xlAscending 'será feito a classificação
'End If
Call Alt_Class
End Sub
Call Teste

Deu "Erro de compilação"

 
Postado : 01/04/2012 6:39 pm
Página 1 / 2