Notifications
Clear all

ERRO 424 Excel / OBJETIVO OBRIGATORIO

10 Posts
3 Usuários
0 Reactions
959 Visualizações
(@daniiel66)
Posts: 5
Active Member
Topic starter
 

Bom Dia, estou passando por uma dor de cabeça terrível aqui galera, se alguém souber como me ajudar, seria de grande ajuda.

Bom, minha pasta de trabalho possui três planilhas, e estas três planilhas se comunicam entre si. Estou usando uma sequência de algorítimos de VBA para que ele filtre os dados especificados nas células da primeira planilha. Ele busca as informações desejadas na terceira e transfere para a segunda. Mas infelizmente está com erro em algo.
Quando não dá o "ERRO 424" dá "OBJETIVO É OBRIGATÓRIO".

#A planilha está em anexo.

 
Postado : 10/04/2014 5:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

O que é

Inclusao

???

Att

 
Postado : 10/04/2014 5:38 am
(@daniiel66)
Posts: 5
Active Member
Topic starter
 

Uma das Planilhas da Pasta de Trabalho.

 
Postado : 10/04/2014 5:41 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Substitua pela rotina abaixo:

Procure sempre expecificar o nome da aba por completo uma vez que elas não foram alteradas na janela propriedades.
nas instruções : xlUp e xlToLeft em vez de ter a letra "L" estava com o numero "1"

Não fiz testes de lógica, por isso reveja, pois uma das condiçoes será sempre verdadeira pelo fato da coluna "A" -Prefixo ter o mesmo código para todos:

Sub MASTER()

    Sheets("Relatorio").Range("A2:K50000").ClearContents

    ultimaLinha = Worksheets("Inclusao").Cells(Rows.Count, "A").End(xlUp).Row
    
    ultimaColuna = Worksheets("inclusao").Cells(1, Columns.Count).End(xlToLeft).Column
    
    linha = 2

    For X = 2 To ultimaLinha
        
        If Worksheets("inclusao").Cells(X, 6) = Worksheets("Inicio").Cells(5, 7) Or Worksheets("inclusao").Cells(X, 7) = Worksheets("Inicio").Cells(5, 10) Or Worksheets("inclusao").Cells(X, 1) = Worksheets("Inicio").Cells(7, 9) Then
            For i = 1 To ultimaColuna
                Worksheets("Relatorio").Cells(linha, i) = Worksheets("inclusao").Cells(X, i)
            Next
            linha = linha + 1
        End If
    Next
    
End Sub

[]s

 
Postado : 10/04/2014 5:52 am
(@gtsalikis)
Posts: 2373
Noble Member
 

EDIT: O Mauro foi mais rápido...

Tente assim:

Sub MASTER()

    Sheets("Relatorio").Range("A2:K50000").ClearContents

    ultimaLinha = Sheets("Inclusao").Cells(Rows.Count, "O").End(xlUp).Row
    ultimaColuna = Sheets("Inclusao").Cells(1, Columns.Count).End(xlToLeft).Column
    linha = 2

    For X = 2 To ultimaLinha
        If Sheets("Inclusao").Cells(X, 6) = Sheets("Inicio").Cells(5, 7) Or Sheets("Inclusao").Cells(X, 7) = Sheets("Inicio").Cells(5, 10) Or Sheets("Inclusao").Cells(X, 1) = Sheets("Inicio").Cells(7, 9) Then
            For i = 1 To ultimaColuna
                Sheets("Relatorio").Cells(linha, i) = Sheets("Inclusao").Cells(X, i)
            Next
            linha = linha + 1
        End If
    Next
End Sub

Veja que eu corrigi a referência das planilhas e tb troquei o "0" por "O" e o "x1" por "xl"

 
Postado : 10/04/2014 5:55 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Tente

Sub MASTER()

    Worksheets("Relatorio").Range("A2:K50000").ClearContents

    ultimaLinha = Worksheets("Inclusao").Cells(Rows.Count, 1).End(xlUp).Row
    ultimaColuna = Worksheets("Inclusao").Cells(1, Columns.Count).End(xlToLeft).Column
    linha = 2

    For X = 2 To ultimaLinha
        If Worksheets("Inclusao").Cells(X, 6) = Worksheets("Inicio").Cells(5, 7) Or Worksheets("Inclusao").Cells(X, 7) = Worksheets("Inicio").Cells(5, 10) Or Worksheets("Inclusao").Cells(X, 1) = Worksheets("Inicio").Cells(7, 9) Then
            For i = 1 To ultimaColuna
                Worksheets("Relatorio").Cells(linha, i) = Worksheets("Inclusao").Cells(X, i)
            Next
            linha = linha + 1
        End If
    Next
End Sub
 
Postado : 10/04/2014 5:58 am
(@daniiel66)
Posts: 5
Active Member
Topic starter
 

Acontece que ela não está filtrando, está apenas copiando os dados de uma planilha e transferindo para outra.

 
Postado : 10/04/2014 6:19 am
(@daniiel66)
Posts: 5
Active Member
Topic starter
 

Estou usando o seguinte algorítimo de VBA

Sub MASTER()

Worksheets("Relatorio").Range("A2:G50000").ClearContents

ultimaLinha = Worksheets("Inclusao").Cells(Rows.Count, 1).End(xlUp).Row
ultimaColuna = Worksheets("Inclusao").Cells(1, Columns.Count).End(xlToLeft).Column
linha = 2

For X = 2 To ultimaLinha
If Worksheets("Inclusao").Cells(X, 6) = Worksheets("Inicio").Cells(5, 7) Or Worksheets("Inclusao").Cells(X, 7) = Worksheets("Inicio").Cells(5, 10) Or Worksheets("Inclusao").Cells(X, 1) = Worksheets("Inicio").Cells(7, 9) Then
For i = 1 To ultimaColuna
Worksheets("Relatorio").Cells(linha, i) = Worksheets("Inclusao").Cells(X, i)
Next
linha = linha + 1
End If
Next
End Sub

Enfim, o erro é o seguinte, ele não está copiando os dados seguindo o filtro, ele está apenas copiando linha por linha e transferindo.

Alguém identifica o ERRO?

 
Postado : 10/04/2014 7:01 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Daniiel66, procure manter o foco no mesmo tópico, juntei os dois por achar que os assuntos estão relacionados.

Como eu comentei em minha resposta anterior, uma das condições de pesquisa aninhadas referente a Coluna "A" serão sempre Verdadeiras uma vez que todos os códigos são iguais, então é copiado tudo, você tem de ajustar estas condições.

Pesquise no forum sobre autofiltro com mais de um criterio e encontrara varios tópicos referente a "FILTRO".

[]s

 
Postado : 10/04/2014 7:19 am
(@daniiel66)
Posts: 5
Active Member
Topic starter
 

Muito Obrigado Mauro. :)

 
Postado : 10/04/2014 7:27 am