Notifications
Clear all

Problema com filtro de datas

12 Posts
2 Usuários
0 Reactions
2,533 Visualizações
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

Boa tarde a todos do forum!!

Pessoal preciso adaptar essa macro que filtra intervalos de datas, preciso fitlrar as informações da plan1 e transferir para plan6, mas sem sucesso.
Se alguem puder me ajudar, segue a codigo que esto tentando adaptar para melhor entendimento

Private Sub CommandButton1_Click()
On Error Resume Next
Plan6.Range("A2:L65536") = ""

For linha = 2 To ThisWorkbook.Worksheets("Plan1").Cells(rows.Count, 1).End(xlUp).Row
If ThisWorkbook.Worksheets("Plan1").Range("E" & linha) >= CDate(TextBox1) And ThisWorkbook.Worksheets("Plan1").Range("E" & linha) <= CDate(TextBox2) Then
ThisWorkbook.Worksheets("Plan1").Range("A" & linha & ":L" & linha).Copy Destination:=ThisWorkbook.Worksheets("Plan6").Range("A" & (ThisWorkbook.Worksheets("Plan6").Cells(rows.Count, 1).End(xlUp).Row) + 1 & ":L" & (ThisWorkbook.Worksheets("Plan6").Cells(rows.Count, 1).End(xlUp).Row) + 1)
End If
Next

End Sub

 
Postado : 11/03/2012 10:15 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Seria mais fácil se tivesse enviado um modelo reduzido e compactado, mas de uma olhada nos links abaixo se ajudam :

Criar Filtros e Imprimir ( Mais uma vez )
viewtopic.php?f=10&t=3584

Macro Copiar valores Iguais
viewtopic.php?f=10&t=2635&p=11577&hilit=auto+filtro#p11577

Separar uma planilha em varias planilhas no mesmo arquivo
viewtopic.php?f=16&t=2472&p=10764&hilit=advanced+filter#p10764

Excel Advanced Filter Introduction
http://www.contextures.com/xladvfilter01.html

Filter Excel Data to a Different Sheet -- Excel 2003 and earlier
http://www.contextures.com/xlVideos04.html#AdvFiltSheet

Se fizer uma Pesquisa no Forum sobre Filtro Avançado, encontrara varios outros exemplos.

[]s

 
Postado : 11/03/2012 12:19 pm
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

Mauro coutinho, esto anexando um exemplo para vc ver onde esto errando, para facilitar.

Obrigado pela ajuda de todos no forum

 
Postado : 11/03/2012 12:48 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Cleiton, troque sua rotina pela a abaixo e faça os testes se é isto :

Private Sub CommandButton1_Click()

    Dim lastRow As Long
    
   ' On Error Resume Next
    
    Plan6.Range("A2:E30000") = ""
    
    lastRow = Plan1.Cells(Rows.Count, 1).End(xlUp).Row

        For X = 2 To lastRow
        
            If CDate(Plan1.Cells(X, 5).Value) >= CDate(Me.TextBox1) _
                And CDate(Plan1.Cells(X, 5).Value) <= CDate(Me.TextBox2) Then
                
                Plan1.Range("A" & X & ":E" & X).Copy Destination:=Plan6.Cells(X, 1)
        
            End If
        
        Next
            
End Sub

[]s

 
Postado : 11/03/2012 1:29 pm
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

MAURO ELE TA ME FILTRANDO AGORA CERTINHO, SÓ QUE ESTÁ MANDANDO AS INFORMAÇÕES NAS CELULAS ERRADAS,ELE NÃO ORGANIZA AS INFORMAÇÕES APARTIR DA CELULA A2, ELE JOGA AS INFORMAÇÕES NA CELULAS QUE FOI ENCONTRADO NA PLAN1, TIPO SE A PRIMEIRA INFORMAÇÃO QUE ELE AXO NA PLAN1 FOI NA A12, ELE COMEÇA JOGAS AS INFORMAÇÕES NA PLAN6 DA A12 PARA BAIXO, E DAI A11 PARA CIMA FICA EM BRANCO

 
Postado : 11/03/2012 1:52 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Olá, não é legal postar com letras maiúsculas!!

Att

 
Postado : 11/03/2012 1:57 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

MAURO ELE TA ME FILTRANDO AGORA CERTINHO, SÓ QUE ESTÁ MANDANDO AS INFORMAÇÕES NAS CELULAS ERRADAS,ELE NÃO ORGANIZA AS INFORMAÇÕES APARTIR DA CELULA A2, ELE JOGA AS INFORMAÇÕES NA CELULAS QUE FOI ENCONTRADO NA PLAN1, TIPO SE A PRIMEIRA INFORMAÇÃO QUE ELE AXO NA PLAN1 FOI NA A12, ELE COMEÇA JOGAS AS INFORMAÇÕES NA PLAN6 DA A12 PARA BAIXO, E DAI A11 PARA CIMA FICA EM BRANCO

viewtopic.php?f=9&t=3661&p=17526#p17526

 
Postado : 11/03/2012 2:01 pm
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

perdão mesmo..eu tava aqui entertido fazendo um negocio no word com letra maiscula, ai na locura nem percebi e cabei escrevendo com letra maiscula, tava destraido..perdão a todos ai ?

 
Postado : 11/03/2012 2:11 pm
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

To corrigindo o topico que fiz caca pessoal, não foi de má fé, prestarei mais atenção daqui para frente.

Mauro ele ta me filtarndo agora, só tem um errinho, ele está mandando as informações na celulas erradas, ele não organiza as informações apartir da celula A2, típo se a primeira informação que ele axo na plan1 foi na A12, ele começa a jogas as informações na plan6 da A12 para baixo, dai as informaçõe da A11 para cima fica em branco

 
Postado : 11/03/2012 2:29 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Uma vez que o administrador ainda não acrescentou as regras e qual deve ser a consequencia, eu me reservei o direito de não responder, mas desta vez vou levar em consideração as desculpas, até que tenhamos umadefinição, mas não será sempre.

Espero que me compreendam, pois em outros Foruns que participo, o usuário é addvertido e conforme as ocorrencias até banido.

Voltando ao filtro, é mais uma questão de procurarmos analisar e entendermos o que estamos fazendo, se começarmos a realizar esta analise, logo ficaremos craque :

Private Sub CommandButton1_Click()

    Dim lastRow As Long
    Dim sLinha As Long
    
    Plan6.Range("A2:E30000") = ""
    
    'Conta a qde de linhas
    lastRow = Plan1.Cells(Rows.Count, 1).End(xlUp).Row
    
    sLinha = 2 'Corresponde a Linha onde iniciará o lançamento do resultado
    
        'Para cada Linha (X) para a  última Linha
        For X = 2 To lastRow 'X corresponde a Linha de Pesquisa
        
            If CDate(Plan1.Cells(X, 5).Value) >= CDate(Me.TextBox1) _
                And CDate(Plan1.Cells(X, 5).Value) <= CDate(Me.TextBox2) Then
                
                'Plan1.Range("A" & Linha Encontrada & "E" & Linha Encontrada
                 Plan1.Range("A" & X & ":E" & X). _
                 Copy Destination:=Plan6.Cells(sLinha, 1)
                'copia para, Plan6.Cells(sLinha = Linha Inicial, primeira coluna)
                
                'Incrementa a variavel para a proxima Linha
                sLinha = sLinha + 1
                
            End If
        
        Next
            
End Sub

Veja os comentários namesma

[]s

 
Postado : 11/03/2012 2:54 pm
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

Eu entendo, eu sabia das regras, hoje esto montando uns relatorios, e com essa correria a cabeçaa fico meio atrapalhada e cansada, e na hora de escrer no forum o cansaço atrapalho e nem prestei atenção no que fiz, mais uma vez pesso desculpas a todos do forum, não voltara a acontecer.

Obrigado pela ajuda mauro coutinho, o filtro funciono certinho agora.

Desejo a todos do forum uma ótima semana!

abrass

 
Postado : 11/03/2012 3:18 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Como experimento (já que o mestre Mauro já te respondeu), teste esse código.

Faça os teste.

Private Sub CommandButton1_Click()

On Error Resume Next

With Sheets("Plan1").UsedRange.Resize(, 5)
    
    Application.ScreenUpdating = 0
    
    .AutoFilter 5, ">=" & CLng(CDate(TextBox1)), xlAnd, "<=" & CLng(CDate(TextBox2))
    
    If Sheets("Plan1").Cells(rows.Count, 1).End(xlUp).Row > 1 Then .Offset(1).Copy Sheets("Plan6").Cells(Rows.Count, 1).End(xlUp).Offset(1)
    
    .AutoFilter
    
    Application.ScreenUpdating = 1

End With

End Sub
 
Postado : 11/03/2012 3:19 pm