Foto de Micael A.
Micael há 5 anos
Enviada pelo
Site

Colorindo mapas usando células coloridas com format condicio

Boa noite para todos.

Estou com o seguinte problema no uso do VBA no Excel:

Escrevi um macro para colorir um mapa a partir das cores de determinadas células. O macro funciona bem se as células forem coloridas manualmente. Mas, quando uso formatação condicional para colorir as células, o código deixa de funcionar (não pinta o mapa).

Alguém poderia me dar alguma ajuda? Segue abaixo o código em questão:

 

Public Sub teste()

 

Dim i As Integer
Dim eEstados(1 To 27) As String
Dim shpname As String

' ---------------------------  BLOCO 1: Colorindo as células com critério baseado nos seus valores.    -----------

Range("B1:B27").Select   'Selecionando as células de interesse.

Set cfColorScale = Selection.FormatConditions.AddColorScale(ColorScaleType:=2)  'Criando uma escala de cor com duas cores para o range selecionado.

'Atribuindo a cor laranja o menor valor e a cor vermelha ao maior.
cfColorScale.ColorScaleCriteria(1).FormatColor.Color = RGB(255, 165, 0)
cfColorScale.ColorScaleCriteria(2).FormatColor.Color = RGB(255, 0, 0)

 

' ---------------------------  BLOCO 2: Colorindo o mapa.   --------------------------------------------------------

'Obtendo as siglas das unidades federativas.

For i = 1 To 27

    eEstados(i) = Cells(i, 1)

Next

 

' Pinta o mapa de cada estado baseado nas cores das células localizadas na coluna "B".
For i = 1 To 27      'loop por todos as unidades federativas.
    shpname = eEstados(i)    'associa à string shaname a sigla da unidade federativa.
    ActiveSheet.Shapes(shpname).Select  'ativa o mapa do estado.
    Selection.ShapeRange(1).Fill.ForeColor.RGB = Range("B" & i).Interior.Color    'pinta o mapa do estado com a cor da respectiva célula
Next i

End Sub

 

Lembrando que este código não funciona (o mapa não é pintado, continuando com a cor original), a menos que comentemos o trecho relacionado à formatação condicional (BLOCO 1) e pintemos as células manualmente.

 

Desde já, grato pela atenção.

Excel Geral
1 resposta
Professor Claudio M.
Respondeu há 5 anos
Contatar Claudio

Oi Micael, Você vai precisar criar uma código para capturar a mesma lógica da formatação condicional no seu código VBA. Assim o código atuará como se estive adicionando a cor de forma manual. Sucesso para vc e me avise se deu certo.


Prof. Claudio Moreto

011 96362 0185

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta

Envie sua pergunta

Aprenda do seu jeito, no seu ritmo

Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App
Escaneie o QR Code para baixar