Compartilhar via

Formatação de gráficos com VBA

Anônima
2023-03-18T17:25:05+00:00

Vivam! Tenho um gráfico formatado para 3 níveis de valores, com:

Sub FormatarSeries()

    Dim grafico As ChartObject
    Dim serie As Series
    Dim ponto As Point

    Set grafico = Sheet1.ChartObjects(1)
     For Each serie In grafico.Chart.SeriesCollection
      For Each ponto In serie.Points

            If ponto.DataLabel.Text >= 20000 Then
               ponto.Format.Fill.ForeColor.RGB = RGB(84, 130, 53)    'Verde escuro
               ponto.DataLabel.Font.Color = RGB(84, 130, 53)
               ponto.DataLabel.Orientation = 90

           ElseIf ponto.DataLabel.Text <= 10000 Then
                  ponto.Format.Fill.ForeColor.RGB = RGB(180, 0, 0)    'Vermelho
                  ponto.DataLabel.Font.Color = RGB(180, 0, 0)
                  ponto.DataLabel.Orientation = 90
            Else
                  ponto.Format.Fill.ForeColor.RGB = RGB(195, 222, 176)    'Verde claro
                  ponto.DataLabel.Font.Color = RGB(84, 130, 53)
                  ponto.DataLabel.Orientation = 90
          End If
      Next ponto
     Next serie
End Sub
..................

Contudo, precisava de fazer uma reprogramação para 5 parâmetros diferentes,
em função de novos valores.
Assim:
< 10000 Then ...
>= 10000 And ... < 25000 Then ...
>= 25000 And ... < 75000 Then ...
>= 75000 And ... < 95000 Then ...
>= 95000 Then ...

Gostaria da vossa ajuda.
Antecipadamente grato.
aan
Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

Resposta aceita pelo autor da pergunta

  1. Anônima
    2023-03-19T04:46:31+00:00

    Esta resposta foi traduzida automaticamente. Como resultado, pode haver erros gramaticais ou palavras estranhas.

    Olá anvs

    Bem-vindo à Comunidade Microsoft.

    Com base em sua descrição atual, parece que você precisa modificar seu código VBA para incluir os 5 parâmetros diferentes que você mencionou.

    Aqui está uma versão modificada do seu código que pode fazer isso:

    Clique aqui para baixar o código.

    Nesse código modificado, adicionei uma nova variável chamada "valor" para armazenar o valor de cada rótulo de dados. Em seguida, alterei as condições if-else para corresponder aos 5 parâmetros diferentes especificados. Para cada condição, atribuí uma cor diferente ao ponto de dados e ao rótulo de dados, bem como uma orientação diferente ao rótulo de dados. Você pode ajustar esses valores conforme necessário para seu gráfico específico.

    Espero ter ajudado! Se o código acima não funcionar, você pode tentar compartilhar este arquivo, ele nos ajudará a discutir como proceder em seguida.

    Atenciosamente

    Chandy - Brasil | Especialista em Suporte da Comunidade Microsoft

    Esta resposta foi útil?

    1 pessoa achou esta resposta útil.
    0 comentários Sem comentários

2 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2023-03-19T11:52:59+00:00

    Bom dia, novamente.

    Cumpre-me corrigir o que há pouco escrevi:

    Os aparentes erros deviam-se ao facto de me ter escapado uma linha de código, precisamentre a da cor do label.

    Assim:

    O código TRABALHA NA PERFEIÇÃO.

    Reitero os meus agradecimentos.

    anvs

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2023-03-19T11:37:42+00:00

    Bom dia.

    Agradeço a rápida resposta e que funciona bem.

    Somente tive de acrescentar uma linha com: On Error Resume Next

    Dava erro na linha onde define a cor do label e, por lapso meu, também dava erro quando um dos valores for omisso.

    Uma vez mais, muito obrigado.

    anvs

    Esta resposta foi útil?

    0 comentários Sem comentários