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

Macro - Formatação Condicional


Lucas Ricardo

Pergunta

Bom dia, 

gostaria de utilizar uma macro para formatação condicional (acredito que seja a única forma)

 

Terá um questionário onde as pessoas irão responder com X em duas colunas, caso na coluna 2, tenha alguma x a formatação condicional retornará uma cor e uma escrita, caso não tenha retornará outra cor e outra escrita

Porém, queria que a formatação so aparecesse depois que a pessoa respondesse todo o questionário (por isso acho que a fc do excel mesmo não funcionaria).

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim sh As Worksheet: Set sh = ThisWorkbook.Worksheets("QUESTIONÁRIO")
    If Target.Column = 2 Or Target.Column = 3 Then
        If Target.Row >= 3 And Target.Row <= sh.Cells(sh.Rows.Count, "A").Row Then
            On Error Resume Next
            Dim n As Integer: n = sh.Range(sh.Cells(3, 2), sh.Cells(sh.Cells(sh.Rows.Count, "A").End(xlUp).Row, 3)).Cells.SpecialCells(xlCellTypeConstants).Count
            If n = sh.Cells(sh.Rows.Count, "A").End(xlUp).Row - 2 Then
                Call certoErrado
            End If
            On Error GoTo 0
        End If
    End If
End Sub

 

Public Sub certoErrado()
    Dim sh As Worksheet: Set sh = ThisWorkbook.Worksheets("QUESTIONÁRIO")
    Dim rng As Range: Set rng = sh.Range(sh.Cells(3, 1), _
                                         sh.Cells(sh.Cells(sh.Rows.Count, "A").End(xlUp).Row, "A"))
    Dim res As Boolean: res = False
    'MsgBox rng.AddressLocal
    For Each cell In rng
        If sh.Cells(cell.Row, "G").Value = "C" Then
            If Not IsEmpty(sh.Cells(cell.Row, "B").Value) Then
                sh.Cells(cell.Row, "B").Interior.Color = RGB(51, 204, 51)
            Else
                sh.Cells(cell.Row, "C").Interior.Color = RGB(255, 0, 0)
            End If
        ElseIf sh.Cells(cell.Row, "G").Value = "E" Then
            If Not IsEmpty(sh.Cells(cell.Row, "C").Value) Then
                sh.Cells(cell.Row, "C").Interior.Color = RGB(51, 204, 51)
            Else
                sh.Cells(cell.Row, "B").Interior.Color = RGB(255, 0, 0)
            End If
        End If
    Next cell
End Sub

SEGUE UM EXEMPLO DE RESOLUÇÃO DO PROBLEMA

 

IMG_CERTOERRADO.jpg

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...