Notifications
Clear all

Ajuda com filtros

7 Posts
1 Usuários
0 Reactions
1,957 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Galera boa tarde,
Mais uma vez venho pedir ajuda (novidade neh xD)

Então acontece o seguinte, em uma planilha na coluna A tenho numeros em ordem crescente, e preciso saber quais numeros não constam na lista, e os que não foram localizados na coluna A devem ser lançados na coluna B, em ordem sequencial, um em baixo do outro
é possivel fazer isso ?

Agradeço desde ja

 
Postado : 16/02/2011 7:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

tenho um modelo antigo, vê se ajuda:

 
Postado : 16/02/2011 8:37 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Uau muito bom mesmo, muitissimo obrigado !!
Para falar a verde eu não sabia q era possivel usando indice e corresp, gostaria de saber se tem como fazer por VBA tbm ?

 
Postado : 16/02/2011 10:08 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Me lembro que quando fiz esse exemplo pra comunidade, não me lembro quem, mas fizeram em VBA...

Daqui a pouco aparece alguém aqui com a solução em VBA...

Qualquer coisa da o grito...

 
Postado : 16/02/2011 10:47 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bernardo, eu ateh consegui fazer em VBA, porem tem muito "gato" kkkkk
o problema eh q os numeros estão sendo salvos na outra planilha 2, e não na 1...
gostaria q ficasse tudo em uma soh planilha
ficou mais ou menos assim

Dim cont As Variant
cont = 0
Range("a2").Select

While ActiveCell <> ""
cont = ActiveCell
While ActiveCell.Offset(1, 0) <> "" And ActiveCell.Offset(1, 0) - cont <> 1
cont = cont + 1

Worksheets("plan2").Select
Range("a1000").Select
ActiveCell.End(xlUp).Select
ActiveCell.Offset(1, 0).Select
ActiveCell = cont

Worksheets("plan1").Select

Wend
ActiveCell.Offset(1, 0).Select
Wend

 
Postado : 16/02/2011 11:43 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Troque sua rotina por esta:

Sub NumerosFaltando()
Dim cont As Variant
Dim Scont As Variant
cont = 0
Scont = 2

Range("a2").Select
    While ActiveCell <> ""
    cont = ActiveCell
        While ActiveCell.Offset(1, 0) <> "" And ActiveCell.Offset(1, 0) - cont <> 1
            cont = cont + 1
        
            Cells(Scont, 2) = cont
            Scont = Scont + 1
    
        Wend
    ActiveCell.Offset(1, 0).Select
    Scont = Scont
Wend
End Sub

Ou por esta:
A diferença entre as duas é que nesta não ficamos amarrados em Ranges Fixos, podemos alterar na rotina a Linha e Coluna:

    Sub NumerosFaltando2()
        Dim Rng As Range, MyCell As Range
        Dim sLinha, sCol As Variant
        
        sLinha = 2 'Linha
        sCol = 2 'Coluna
        
        'define o Range na Worksheets("Plan1") e conta a quantidade de Itens no mesmo
        Set Rng = Worksheets("Plan1").Range("A2", Range("A" & Rows.Count).End(xlUp))
            Application.EnableCancelKey = xlDisabled
            Application.ScreenUpdating = False

            'varredura da coluna inteira de itens
            For Each MyCell In Rng.Cells
                   'Define o primeiro valor
                   Set Valor = MyCell
                   'Define o proximo Valor
                   sValorProximo = MyCell.Offset(1, 0)
                   
                While Valor < sValorProximo - 1
                    Cells(sLinha, sCol) = Valor + 1
              
                    sLinha = sLinha + 1
                    Valor = Valor + 1
                Wend
                
                sValorProximo = MyCell.Offset(-1, 1)
            Next MyCell

        'ao finalizar volta para o primeiro item
        Range("A1").Select

        Application.ScreenUpdating = True
        Application.EnableCancelKey = xlInterrupt

        MsgBox "Concluído.", vbInformation + vbOKOnly

    End Sub

[]s

 
Postado : 16/02/2011 10:11 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Nossa !!!!
Realmente impressionante o que o excel faz !
Muito obrigado mesmo Mauro, funcionou que esta uma beleza !!
Nada como alguem inteligente neh :D

 
Postado : 17/02/2011 7:58 am