Notifications
Clear all

Auto-filtro.Esconder uma linha inteira ao detectar palavras

24 Posts
2 Usuários
0 Reactions
4,596 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 noite!!
Acerte este

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

É aqui que falei!!

Sub Alt_Class()
Dim lrow As Long
lrow = Range("A" & Rows.Count).End(xlUp).Row

    Columns("E:E").Select
    Selection.TextToColumns Destination:=Range("E1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), DecimalSeparator:=".", ThousandsSeparator:=",", _
        TrailingMinusNumbers:=True
    Selection.NumberFormat = _
        "_([$$-1004]* #,##0.00_);_([$$-1004]* (#,##0.00);_([$$-1004]* ""-""??_);_(@_)"
    
    ActiveWorkbook.Worksheets("Sheet1").Range("A1:E" & lrow).Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("E2:E" & lrow) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("A1:E" & lrow)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
Range("E1").Select
End Sub

Cole lá em seu modulo.

Att

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

Não funcionou. Por favor veja se fiz algo errado.
http://www.sendspace.com/file/hh08b6

 
Postado : 01/04/2012 6:58 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

boa noite!!

Faça os teste..

http://www.sendspace.com/file/1gx3pv

Att

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

Não está funcionando. Não está escondendo as palavras que citei como exemplo. O que está acontecendo é justamente o contrário, esta escondendo todas as linhas da planilha e aparecendo somente as linhas que tem "Josecarlosmatosgarcia" (palavra citada para ser escondida).

Segue o print.

 
Postado : 01/04/2012 8:28 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Teste com essa então.

Sub Teste2()

    Dim r As Long, LastRow As Long

    LastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row

    For r = LastRow To 2 Step -1

        If Not Cells(r, 1) Like "Aphyosemion" And _
           Not Cells(r, 2) Like "Josecarlosmatosgarcia" Then

            Rows(r).EntireRow.Hidden = True

        End If

    Next r

End Sub
 
Postado : 02/04/2012 4:21 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Faça os teste com esse arquivo.
http://www.sendspace.com/file/2pl8jq

Cuidado com os nomes digitados nas células, pois dever ser igual ao do código.

Obs: A rotina oculta os nomes e não deleta!!!

Att

 
Postado : 02/04/2012 5:37 am
(@thezein)
Posts: 30
Eminent Member
Topic starter
 

Vou testar

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

Resultado do teste. Tudo em branco.

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

Alguém ?

 
Postado : 10/04/2012 10:05 pm
Página 2 / 2