Responder dúvida

Seja o primeiro a responder

Colorindo mapas usando células coloridas com format condicio

Excel Intermediário Avançado

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.

Foto de Micael A.
Micael perguntou há 4 anos