Notifications
Clear all

Macro de filtro sobre outro filtro, por botões

6 Posts
3 Usuários
0 Reactions
1,589 Visualizações
(@cristy0505)
Posts: 28
Eminent Member
Topic starter
 

Estou com uma planilha com alguns botões de filtros.

A primeira etapa, filtra por fornecedor. A segunda, por mês e a terceira por semana.

Acontece que não estou conseguindo, depois de filtrar por fornecedor, filtrar em cima do primeiro filtro por mês e depois por semana.

Gente, estava mexendo aqui e fiz o seguinte macro para o botão de semana:

Sub FIRSTWEEK()
'
' FIRSTWEEK Macro
'

'
    Dim koct As Boolean
    Dim knov As Boolean
    Dim kdec As Boolean
    Dim kjan As Boolean
    Dim kfeb As Boolean
    Dim kmar As Boolean
    Dim kapr As Boolean
    Dim kmay As Boolean
    Dim kjun As Boolean
    Dim kjul As Boolean
    Dim kaug As Boolean
    Dim ksep As Boolean
    
    
    If "OCT" = True And "NOV" = False And "DEC" = False And "JAN" = False And "FEB" = False And "MAR" = False And "APR" = False And "MAY" = False And "JUN" = False And "JUL" = False And "AUG" = False And "SEP" = False Then
    koct = True
    End If
    
    If "OCT" = False And "NOV" = True And "DEC" = False And "JAN" = False And "FEB" = False And "MAR" = False And "APR" = False And "MAY" = False And "JUN" = False And "JUL" = False And "AUG" = False And "SEP" = False Then
    knov = True
    End If
    
    If "OCT" = False And "NOV" = False And "DEC" = True And "JAN" = False And "FEB" = False And "MAR" = False And "APR" = False And "MAY" = False And "JUN" = False And "JUL" = False And "AUG" = False And "SEP" = False Then
    kdec = True
    End If
    
    If "OCT" = False And "NOV" = False And "DEC" = False And "JAN" = True And "FEB" = False And "MAR" = False And "APR" = False And "MAY" = False And "JUN" = False And "JUL" = False And "AUG" = False And "SEP" = False Then
    kjan = True
    End If
    
    If "OCT" = False And "NOV" = False And "DEC" = False And "JAN" = False And "FEB" = True And "MAR" = False And "APR" = False And "MAY" = False And "JUN" = False And "JUL" = False And "AUG" = False And "SEP" = False Then
    kfeb = True
    End If
    
    If "OCT" = False And "NOV" = False And "DEC" = False And "JAN" = False And "FEB" = False And "MAR" = True And "APR" = False And "MAY" = False And "JUN" = False And "JUL" = False And "AUG" = False And "SEP" = False Then
    kmar = True
    End If
    
    If "OCT" = False And "NOV" = False And "DEC" = False And "JAN" = False And "FEB" = False And "MAR" = False And "APR" = True And "MAY" = False And "JUN" = False And "JUL" = False And "AUG" = False And "SEP" = False Then
    kapr = True
    End If
    
    If "OCT" = False And "NOV" = False And "DEC" = False And "JAN" = False And "FEB" = False And "MAR" = False And "APR" = False And "MAY" = True And "JUN" = False And "JUL" = False And "AUG" = False And "SEP" = False Then
    kmay = True
    End If
    
    If "OCT" = False And "NOV" = False And "DEC" = False And "JAN" = False And "FEB" = False And "MAR" = False And "APR" = False And "MAY" = False And "JUN" = True And "JUL" = False And "AUG" = False And "SEP" = False Then
    kjun = True
    End If
    
    If "OCT" = False And "NOV" = False And "DEC" = False And "JAN" = False And "FEB" = False And "MAR" = False And "APR" = False And "MAY" = False And "JUN" = True And "JUL" = True And "AUG" = False And "SEP" = False Then
    kjul = True
    End If
    
    If "OCT" = False And "NOV" = False And "DEC" = False And "JAN" = False And "FEB" = False And "MAR" = False And "APR" = False And "MAY" = False And "JUN" = True And "JUL" = False And "AUG" = True And "SEP" = False Then
    kaug = True
    End If
    
    If "OCT" = False And "NOV" = False And "DEC" = False And "JAN" = False And "FEB" = False And "MAR" = False And "APR" = False And "MAY" = False And "JUN" = False And "JUL" = False And "AUG" = False And "SEP" = True Then
    ksep = True
    End If
    
    
    If koct = True Then
    
    Sheets("DATABASE").Select
    Range("AV3:AV60").Select
    Selection.Copy
    Sheets("FILTER").Select
    Range("E7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B15").Select
    End If
    
    If knov = True Then
    
    Sheets("DATABASE").Select
    Range("BA3:BA60").Select
    Selection.Copy
    Sheets("FILTER").Select
    Range("E7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B15").Select
    End If
    
    If kdec = True Then
    
    Sheets("DATABASE").Select
    Range("BF3:BF60").Select
    Selection.Copy
    Sheets("FILTER").Select
    Range("E7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B15").Select
    End If
    
    If kjan = True Then
    
    Sheets("DATABASE").Select
    Range("C3:C60").Select
    Selection.Copy
    Sheets("FILTER").Select
    Range("E7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B15").Select
    End If
    
    If kfeb = True Then
    
    Sheets("DATABASE").Select
    Range("H3:H60").Select
    Selection.Copy
    Sheets("FILTER").Select
    Range("E7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B15").Select
    End If
    
    If kmar = True Then
    
    Sheets("DATABASE").Select
    Range("M3:M60").Select
    Selection.Copy
    Sheets("FILTER").Select
    Range("E7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B15").Select
    End If
    
    If kapr = True Then
    
    Sheets("DATABASE").Select
    Range("R3:R60").Select
    Selection.Copy
    Sheets("FILTER").Select
    Range("E7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B15").Select
    End If
    
    If kmay = True Then
    
    Sheets("DATABASE").Select
    Range("W3:W60").Select
    Selection.Copy
    Sheets("FILTER").Select
    Range("E7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B15").Select
    End If
    
    If kjun = True Then
    
    Sheets("DATABASE").Select
    Range("AB3:AB60").Select
    Selection.Copy
    Sheets("FILTER").Select
    Range("E7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B15").Select
    End If
    
    If kjul = True Then
    
    Sheets("DATABASE").Select
    Range("AG3:AG60").Select
    Selection.Copy
    Sheets("FILTER").Select
    Range("E7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B15").Select
    End If
    
    If kaug = True Then
    
    Sheets("DATABASE").Select
    Range("AL3:AL60").Select
    Selection.Copy
    Sheets("FILTER").Select
    Range("E7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B15").Select
    End If
    
    If ksep = True Then
    
    Sheets("DATABASE").Select
    Range("AQ3:AQ60").Select
    Selection.Copy
    Sheets("FILTER").Select
    Range("E7").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B15").Select
    End If
    
    End Sub

Só que dá um erro e não funciona... O que está errado? É mais ou menos isso mesmo para fazer o que quero?

Preciso de uma luz aqui.

Agora a planilha se encontra da maneira em anexo...

Agradeço antecipadamente,

Cristina.

"Only those who will risk going too far can possibly find out how far one can go."

 
Postado : 02/10/2013 10:51 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Cristina, não entendi direito o que deseja.
Mas vamos lá:
Sempre serão as 3 opções? Ou seja --> Fornecedor/Mês/Semana, ou poderá ser individual - Só Fornecedor /Só Mês....
Na Planilha "Filtro" :
Colunas B e C, correspondem aos dados da coluna "A" e "B" da Planilha "DATABASE", certo?
Colunas F a J corresponde às colunas BK à BO , certo ?
O que se espera nas Colunas D e E da planilha Filtro ?

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

 
Postado : 02/10/2013 12:36 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Cristina,

Boa Tarde!

Não seria melhor fazer uma plainlha dinâmica e filtrar da maneira como preferir?

Veja se o exemplo anexo lhe atende.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 02/10/2013 1:02 pm
(@cristy0505)
Posts: 28
Eminent Member
Topic starter
 

Boa tarde.

Primeiramente muito obrigada pela atenção.

Eu não consigo fazer downloads aqui na empresa. Quando chegar em casa vou ver.

Mas é o que o Reinaldo sugeriu poderá ser todos os dados referentes a fornecedor X, também todos esses dados porém somente de mês X e depois todos os dados deste feornecedor, no mês desejado, na semana desejada.

Na D tecnicamente seria para colocar o número referente ou nome do mês em questão, porém eu desisti e iria tirar a coluna porque achei muito dificil, mas na E era para colocar os dados constados na plan database referentes a coluna a semana especificada.

"Only those who will risk going too far can possibly find out how far one can go."

 
Postado : 02/10/2013 1:57 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

É possível sem macro.

Qq coisa me fale.

Abs

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

 
Postado : 02/10/2013 11:41 pm
(@cristy0505)
Posts: 28
Eminent Member
Topic starter
 

Bom dia novamente!

Acabou não dando para eu ver a planilha ontem em casa, cheguei tarde e cansada...

Mas não importando a forma como, eu precisava que a planilha não exibisse assim que optar por filtrar:

1- Apenas dados de Fornecedor X

2- Dos dados do Fornecedor X, filtrar em cima disto, e exibir apenas dados de Fornecedor X no mês selecionado (não exibir outros dados)

3 - Dos dados obtidos do fornecedor X no mês de escolha, exibir após isto apenas os dados da semana necessária... (novamente não exibir outras semanas)

Grata pela atenção!

"Only those who will risk going too far can possibly find out how far one can go."

 
Postado : 03/10/2013 5:04 am