Ir ao conteúdo
  • Cadastre-se
David.sps

Destacar intervalo ativo sem perder a formatação

Recommended Posts

Olá amigos,

Antes de mais nada peço desculpas caso haja um tópico já sobre isso....

Procurei e não achei necessariamente isto.

 

Gostaria de uma VBA que deixasse em destaque a linha selecionada (ou intervalo especificado na linha selecionada), mas que ao passar para outra célula/linha eu não perca as formatações da linha anteriormente selecionada. (com da fonte,cor da célula....)

 

Achei VBAs que destacam entretanto, ao passar para próxima seleção  a formatação fica padrão (célula na cor branca etc)

 

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Instale os comandos abaixo em um módulo comum, assim:
1. copie os comandos daqui
2. a partir de qualquer planilha tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor >> Inserir >> Módulo
4. cole os comandos na janela em branco que vai se abrir

Public celAnt As StringPublic corAnt As Integer

Instale o código abaixo no módulo da planilha "Plan1", assim:
1. copie o código daqui
2. ainda no Editor de VBA dê duplo clique em "Plan1"
3. cole o código na janela em branco que vai se abrir

Private Sub Worksheet_SelectionChange(ByVal Target As Range)    If [P1] = 1 Then Exit Sub    If Target.Address = "$P$1" Then Range(celAnt).Interior.ColorIndex = corAnt: Exit Sub    If Target.Column > 15 Then Exit Sub    If celAnt = "" Then GoTo GetF        Range(celAnt).Interior.ColorIndex = corAnt        corAnt = Target.Interior.ColorIndex        Range(Cells(Target.Row, 1), Cells(Target.Row, 15)).Interior.ColorIndex = 15GetF:        celAnt = Range(Cells(Target.Row, 1), Cells(Target.Row, 15)).AddressEnd Sub

Instale os códigos abaixo no módulo de "EstaPasta_de_trabalho", assim:
1. copie os códigos daqui
2. ainda no editor de VBA dê duplo clique em "EstaPasta_de_trabalho"
3. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha

Private Sub Workbook_BeforeClose(Cancel As Boolean)  Sheets("Plan1").[P1].ActivateEnd SubPrivate Sub Workbook_Open()  Sheets("Plan1").[O1].ActivateEnd Sub

Salve o arquivo e só depois faça os testes.

 

funcionamento - o código pinta o intervalo "A:O" ao selecionar uma célula nesse intervalo, restabelece a cor anterior ao mudar a seleção.
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo Osvaldo,

Desde já lhe agradeço por estar empenhado em me ajudar....

Aparentemente fiz tudo como o explicado e notei algumas não conformidades, são elas:

1 - Ao selecionar uma linha ela se destaca como eu solicitei entretanto, não volta a cor da célula como estava antes de ser selecionada (a formatação e etc permanece como eu gostaria), fica uma corzinha lilás.

 

2 - Notei que ao selecionar um intervalo, ocorre um erro na VBA,  se houver a possibilidade de não ocorrer esse erro será excelente. (e não há necessidade do intervalo ficar em destaque) - Quando falo intervalo me refiro a uma seleção como por exemplo 3 linhas.....

 

Mais uma vez Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 - Ao selecionar uma linha ela se destaca como eu solicitei entretanto, não volta a cor da célula como estava antes de ser selecionada (a formatação e etc permanece como eu gostaria), fica uma corzinha lilás.

Talvez o Excel não esteja reconhecendo a cor exata anterior.

Tente alterando a cor de preenchimento que está no código. Coloque outras cores e faça os testes.

Nesta linha Range(Cells(Target.Row, 1), Cells(Target.Row, 15)).Interior.ColorIndex = 15, substitua o 15 do final da linha por outros valores.

 

2 - Notei que ao selecionar um intervalo, ocorre um erro na VBA,  se houver a possibilidade de não ocorrer esse erro será excelente. (e não há necessidade do intervalo ficar em destaque) - Quando falo intervalo me refiro a uma seleção como por exemplo 3 linhas.....

Para evitar o erro acrescente a segunda linha abaixo no código

Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Target.Count > 1 Then Exit Sub

 

Olá, David.

Se ainda persistirem os problemas, por favor disponibilize uma amostra do seu arquivo com os códigos instalados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×