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

Colorir e Centralizar Célula via VBA


pengo

Pergunta

Boa Tarde, estou tentando colorir e centralizar uma célula especifica, no caso a atual, mas não estou conseguindo, já fiz diversas pesquisas, encontrei coisas parecidas, mas não consigo juntar as peças, alguém poderia me ajudar?

Criei a função abaixo, ela pega as celular que eu selecionei e me apresenta o coeficiente de variação (CV) já em porcentagem, isso está funcionando certo.

O problema, eu gostaria que se esse resultado fosse maior do que 12, a célula fosse pintada de vermelho por exemplo e menor do que 12 pintada de verde, e por um capricho gostaria que esse valo ficasse centralizado na célula.

Tentei varias formas, porém sem sucesso 😞 

 

Function CV(rng As Range)
Dim cell As Range

For Each cell In rng

Next cell

    CV = WorksheetFunction.StDev(rng) / WorksheetFunction.Average(rng)

CV = FormatPercent(CV, 1)
  
End Function

 

Editado por pengo
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Boa tarde @pengo.

Como não tenho ideia de como é sua planilha vou bolar uma tabela que faça a alteração como descreveu:

Code:

Public Sub CCCVBA()
Dim nowValue
'Olha o valor da célula atual:
nowValue = ActiveCell.Value

    'Vai executar a formatação de acordo com o valor
    If nowValue > 0 Then
        If nowValue > 0 And nowValue <= 11 Then
            formatationCell ("Vermelho") 'Chama o "sub" formatar célula
        ElseIf nowValue >= 12 Then
            formatationCell ("Verde")
        End If
        
    End If
    
End Sub

Public Sub formatationCell(typeValue As String)
'Comandos para centrar e mudar a cor esta na parte inferior
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        
        'Critério aqui
        If typeValue = "Verde" Then
            .ThemeColor = xlThemeColorAccent6
        ElseIf typeValue = "Vermelho" Then
            .Color = 255
        End If
        
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub

https://drive.google.com/open?id=1JrWidD11BwWMtNjZjukg_kZl3J3fo6H8

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,5k
×
×
  • Criar Novo...