Formatação condicio...
 
Notifications
Clear all

Formatação condicional CTRL+L

18 Posts
3 Usuários
0 Reactions
3,900 Visualizações
(@robert)
Posts: 561
Honorable Member
Topic starter
 

Bom dia a todos!

Mais uma vez preciso da ajuda de vocês.

Tenho uma planilha que tem mais de 200mil linhas, onde tenho :

DATA-MATRICULA-NOME-SITUAÇÃO -VALOR

Gostaria de uma condicional que quando eu localizasse com o CTRL+L o código do produto ele automaticamente printasse todos os outros códigos que são iguais.

Creio que só em VBA mesmo , gostaria da ajuda dos feras aqui do planilhando.

OBS.: SEGUE UMA PLANILHA EM ANEXO

Alguém pode me ajudar ?

Obrigdo !

 
Postado : 09/11/2013 6:53 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Robert,

Bom Dia!

Veja se o arquivo anexo lhe atende.

 
Postado : 09/11/2013 9:19 am
(@robert)
Posts: 561
Honorable Member
Topic starter
 

Wagner boa tarde!

Wagner, como tenho uma planilha enorme com muitos dados no que vai até 200mil linhas tem como fazer para quando jogar a MATRICULA NA USERFORM ela nos leve onde está a MATRICULA??

Esse código vai até quantas linhas , posso adapitala na minha ?

Obrigado!

 
Postado : 09/11/2013 11:03 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Robert,

Sim, você pode utilizar na sua planilha, independente do número de linha que ela tenha. O código está pegando a última linha com dados da coluna B.

Fiz uma pequena alteração de modo que o cursor se deslocará para a última célula onde for encontrada a matrícula pesquisada.

 
Postado : 09/11/2013 11:14 am
(@robert)
Posts: 561
Honorable Member
Topic starter
 

Wagner,
Boa tarde!

Testei a nova plan e continua a mesma coisa, eu quero ao colocar a matricula automaticamente me leve visualmente onde está aquele código. Imagine ficar procurando mo meio de mais de 200mil linhas onde está este código?

O que você fez realmente adorei , mais só está faltando essa questão que está me dando dor de cabeça, não só tenho essa planilha tenho mais de 10 com 200mil linhas . Você deve imaginar como é trabalhoso ficar pesquisando e printando uma por uma .

Wagner você está de parabéns , mais gostaria que você me ajudasse a sanar essa questão.

Obrigado e conto com sua ajuda!

Abrs,

 
Postado : 09/11/2013 1:53 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Robert,

O Excel tem o que vc precisa. Mantenha a macro do Wagner e no Ctrl+L faça a opção LOCALIZAR TUDO, conforme imagem.

Se não for isso avise.

Abs,

 
Postado : 09/11/2013 9:50 pm
(@robert)
Posts: 561
Honorable Member
Topic starter
 

Mandrix,
Bom dia !

Já tentei desta forma, o ruim de mandar procurar tudo no CTRL+L é que se eu tiver um código por exemplo :

CÓD: 1111 e um CÓD: 11110123 - se eu manda ele procurar 1111 ele vai procurar tudo incluindo o cód que não quero que é o : 11110123 . São muitos códigos , o sistema que gera desta forma aleatória.

A forma de localizar e printar que o Wagner criou é sensacional para o meu trabalho, só está faltando essa questão .

Se alguém puder ajudar irei agradecer !

Bom domingo !

 
Postado : 10/11/2013 9:20 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

2 coisas: É pintasse ou printasse? Outra, as funções PROCURAR() ou LOCALIZAR() não resolvem o problema de busca de trechos de texto(string)?

Poste a plan e explique melhor que não deve ser complicado.

Abs,

 
Postado : 11/11/2013 1:37 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Robert, vejo que conforme comentou, o exemplo do Wagner atendeu sua solicitação, ela encontra todos os códigos "REPETIDOS" "pinta todas as Células" onde estão estes códigos e para na ultima celula onde está o código.

Mas o que eu gostaria de compreender, é :
1º ) Você quer que quando acionar o form a rotina vá parando em cada código encontrado ?
2º ) Se for isto, é para efetuar alguma alteração em cada uma ?

Se for para fazer alguma alteração, o AutoFiltro não ajudaria ? Usaríamos uma rotina para localizar o Código e filtrar, ou na mesma aba ou para outra.

[]s

 
Postado : 11/11/2013 5:36 am
(@robert)
Posts: 561
Honorable Member
Topic starter
 

Mandrix, nenhuma dessas soluções atenderia a meu problema, já testei todas essas principalmente a =PROCURAR()+LOCALIZAR() , como a planilha tem vários dados com formulas começa a ficar pesada.

Mauro,

Você disse: 1º ) Você quer que quando acionar o form a rotina vá parando em cada código encontrado ?

É isso mesmo que eu preciso Mauro, não precisa parar em todas as matriculas, só preciso que quando coloque a matricula na form ela me leve onde está essa matricula na minha planilha que tem mais de 200mil linhas.

Mauro, só preciso desse complemento a mais na planilha que o wagner criou.

Obrigado a todos!

Abrs,

 
Postado : 11/11/2013 11:25 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Robert minha pergunta foi devido ao exemplo postado temos matriculas REPETIDAS, então se é para selecionar a que for encontrada, em qual delas devemos parar ?
Na primeira ocorrencia encontrada, na 2ª, na 3ª......, É isto o que eu queria saber, pois se não vamos ter Matricula repetida é só tirar o loop da rotina do Wagner.

Fico no aguardo.

[]s

 
Postado : 11/11/2013 2:00 pm
(@robert)
Posts: 561
Honorable Member
Topic starter
 

Mauro,

Pode ser na última MATRICULA repetida , mais com tanto que continue o print em todas.

Obrigado !

 
Postado : 11/11/2013 2:55 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Robert, me baseando nestas suas citações:

1º ) Você quer que quando acionar o form a rotina vá parando em cada código encontrado ?
É isso mesmo que eu preciso Mauro, não precisa parar em todas as matriculas, só preciso que quando coloque a matricula na form ela me leve onde está essa matricula na minha planilha que tem mais de 200mil linhas.

Pode ser na última MATRICULA repetida , mais com tanto que continue o print em todas. O Print, você quer dizer que continue pintando a cor de fundo das celulas ?

Se entendi corretamente e com a licença do colega Wagner Morel, troque a rotina que ele enviou pela a abaixo:

Private Sub Btn_Pesquisar_Click()
    Dim i, j, UltimaLinha As Long
    Application.ScreenUpdating = False
    Dim Achou As Boolean
    Dim sRg
    
    Achou = False
    
    UltimaLinha = Sheets("Plan1").Cells(Cells.Rows.Count, 2).End(xlUp).Row
    
    If UltimaLinha < 2 Then UltimaLinha = 2
    
        If Txt_Matricula.Text = "" Then
            MsgBox "Digite a matrícula a pesquisar!", vbCritical, "ERRO"
            Txt_Matricula.SetFocus
            Exit Sub
        Else
            For i = 2 To UltimaLinha
                If Range("B" & i).Value = Txt_Matricula.Text Then
                    
                    Range("A" & i & ":E" & i).Interior.ColorIndex = 6
                    
                    Achou = True
                    
                    'Armazena o último endereço encontrado
                    sRg = Range("B" & i).Address(0, 0)
                    
                    Unload Me
                End If
            Next
        End If
    
        If Achou = False Then
            MsgBox "Matrícula não encontrada!", vbCritical, "ERRO"
            Txt_Matricula.SetFocus
        Else
            MsgBox "Matrícula localizada com Sucesso!", vbDefaultButton1, "PESQUISAR"
        End If
    
    Application.ScreenUpdating = True
    
    'Seleciona a Última Matricula encontrada
    Range(sRg).Activate
    
End Sub

[]s

 
Postado : 11/11/2013 5:56 pm
(@robert)
Posts: 561
Honorable Member
Topic starter
 

Mauro,
Boa noite !

Agora realmente ficou sensacional, era exatamente o que eu estava querendo.

Não sei como agradecer a você e o wagner , fico muito grato pela ajuda!

Obrigado!

 
Postado : 11/11/2013 6:51 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Robert,

Eu não estou entendendo porque você disse que a macro não está localizando a matrícula procurada. Observe mais uma vez, por gentileza, e verá que na nova versão do código que enviei, o cursor se desloca para a última célula encontrada com a matrícula. Vejo que o Mauro também observou isso e viu que está funcionando OK.

Não é isso o que você quer? Não está funcionando? Tem certeza que pegou o novo código?

 
Postado : 11/11/2013 7:19 pm
Página 1 / 2