Robert, como eu já havia dito na primeira postagem :
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.
Provavelmente, você não tenha percebido que a rotina parava em cada matricula encontrada na instrução :
Range("B" & i).Select, ou seja em uma analise ao Código sem executa-lo, sabemos que está instrução irá selecionar o range onde foi localizada a matricula, mas se executarmos a rotina sem ser Passo a Passo, como estamos em um
Loop For i = 2 To UltimaLinha, a rotina corre direta e a celula selecionada será a ultima referencia encontrada, sem repararmos que ela está parando em cada matricula.
Resumindo, como a Rotina do Wagner atendia o solicitado eu só ajustei para realizar da maneira que entendi, trocando as instrução :
Range("A" & i & ":E" & i).Select
Selection.Interior.ColorIndex = 6
pela : Range("A" & i & ":E" & i).Interior.ColorIndex = 6, pois neste caso, como já temos o endereço não precisamos seleciona-lo antes, assim aplicamos a formatação direta utilizando somente uma linha.
Apaguei a instrução que ia selecionando cada matricula encontrada :
Range("B" & i).Select - é nesta que você não reparou que selecionava as matriculas.
e acrescentei uma Variável (sRg) para armazenar os endereços onde foram localizada as matriculas mantendo sempre o último:
sRg = Range("B" & i).Address(0, 0)
e ao final da execução ir para o endereço:
Range(sRg).Activate - a diferença aqui é que com esta instrução no final da rotina a tela é rolada até a referência, diferente da instrução anterior que selecionava a ultima mas não rolava a tela.
Ou seja o Crédito é todo do Wagner, eu só fiz alguns ajustes na rotina que ele havia enviado.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 12/11/2013 6:00 am