Ir para conteúdo
Fórum Script Brasil
  • 0

VBA Formatação Condicional


MColucci

Pergunta

Olá, gostaria de saber como formatar em VBA uma planilha quando os valores nela forem diferentes, vou mostrar um exemplo prático:

image.png.38495c9f881078f259f43460758396ed.png

Eu gostaria q nessa tabela alterasse por exemplo a borda inferior da linha em que o nome muda, desse jeito:

image.png.0008cf8596be339a4e0d75c410415e79.png

Sei que no Excel bastaria eu colocar =D2=D3 pra chegar em FALSO ou VERDADEIRO e assim filtrar e formatar como eu quisesse, mas em VBA não estou sabendo como fazer

Obs.: seria uma tabela com quantidade indefinida de linhas.

Se puderem me ajudar agradeço.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Boa noite, é que a pessoa que está precisando vai executar essa rotina e entre outras com uma frequência grande, todas de umas vez, fazer essa formatação manualmente tomaria um tempo do qual ela não tem muito. Vou colocar em uma macro Pessoal e criar um botão no menu pra executar

Link para o comentário
Compartilhar em outros sites

  • 0
Option Explicit


Public Sub FormatarBordarInferiorCasoDiferenteColunaD()
  Dim linha               As Long
  Dim UltimaLinha         As Long
  Dim valorCelulaAtual    As String
  Dim valurCelulaSuperior As String
  
  UltimaLinha = Cells(Rows.Count, "D").End(xlUp).Row
  
  'Formatar a ultima linha já que a inferior e diferênte
  FormatarBordarInferiorLinha UltimaLinha
  
  'Percorrer de baixo para cima fazendo a formatação da linha
  For linha = UltimaLinha To 2 Step -1
    valorCelulaAtual = Cells(linha, "D").Value
    valurCelulaSuperior = Cells(linha - 1, "D").Value
    
    If valorCelulaAtual <> valurCelulaSuperior Then
      FormatarBordarInferiorLinha linha - 1
    End If
    
  Next linha
End Sub


Public Sub FormatarBordarInferiorLinha(linha As Long)
  With Range(Cells(linha, "A"), Cells(linha, "E"))
    .Borders(xlEdgeBottom).LineStyle = xlContinuous
    .Borders(xlEdgeBottom).ColorIndex = xlAutomatic
    .Borders(xlEdgeBottom).TintAndShade = 0
    .Borders(xlEdgeBottom).Weight = xlMedium
  End With
End Sub

Verificar se ele está funcionando.

Editado por Alyson Ronnan Martins
Correção da formulá
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...