Página 1 de 1

Atualização de Mapa Interativo

Enviado: 21 Mar 2019 às 19:16
por victor2
Olá, mestres!

Por gentileza, gostaria da ajuda de vocês.Preciso aplicar esse código para dois shapes na mesma aba, porém ele não aceita,mesmo inserindo as variáveis novas.
Realizei algumas tentativas, porém somente uma atualiza.
Código: Selecionar todos
Option Explicit

Public Sub PreencherCorFormas5()
    Dim strNomeForma   As String
    Dim rngCelulas      As Range
    Dim lngCor As Long, lngRed As Long, lngGreen As Long, lngBlue As Long
    
    With wshPrincipal
        For Each rngCelulas In .ListObjects("tbTipo").ListColumns("Tipo Cor").DataBodyRange
            strNomeForma = CStr(rngCelulas.Offset(, -1).Value2)

            
            lngCor = .Range(rngCelulas.Value).Interior.Color
            lngRed = lngCor Mod 256
            lngGreen = (lngCor \ 256) Mod 256
            lngBlue = (lngCor \ 65536) Mod 256
            
            .Shapes.Range(strNomeForma).Fill.ForeColor.RGB = RGB(lngRed, lngGreen, lngBlue)
            
        Next rngCelulas
    End With
    
End Sub
Obrigado desde já!

Re: Atualização de Mapa Interativo

Enviado: 24 Mar 2019 às 11:07
por babdallas
Para que ter 2 grupos idênticos para serem pintados da mesma maneira?

Caso realmente queira assim, uma solução seria você ter o número de tabelas igual ao número de formas. Neste seu caso, você teria duas tabelas, sendo que na Tabela1 teria, por exemplo, um nome 60_1 e na outra tabela você poderia chamar de 60_2. Então na primeira forma o elemento chamaria 60_1 e na segunda forma seria 60_2. E assim você faria para todas as formas, fazendo com que não tenha forma com o mesmo nome.
Depois teria que fazer pequenas adaptações no código para ele fazer um loop (um for each para todas as tabelas) e depois percorrer todas as linhas de ada uma das tabelas e realizar o mesmo procedimento do código atual.
Não consegui achar uma solução para quando há duas formas com o memso nome.