Jump to content
Fórum Script Brasil
  • 0

Colorir e Centralizar Célula via VBA


Question

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

 

Edited by pengo
Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148692
    • Total Posts
      644525
×
×
  • Create New...