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.
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
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
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.