Página 1 de 1
Mudar cor Shapes em todas as abas
Enviado: 16 Abr 2019 às 15:57
por JCabral
Boa noite
Pedindo de novo ajuda para encontrar uma solução para o problema que passo a explicar:
- tenho uma planilha com várias abas e em seis delas existe um mapa constituído por seis shapes, em todas as abas é o mesmo mapa e as shapes têm o mesmo nome (um nome diferente para cada uma das seis mas igual em cada aba).
- No exemplo que anexo tento simular isso mas só com três abas "DDD";"ADS";"ZPG" e com duas shapes em cada aba "prg_CCON"; "prg_CCOGP"
Precisava um código que me alterasse as cores de todas as shapes na Planilha, o código que fiz só me altera a cor das shapes de uma aba.
Alguma ajuda?
Obrigado
Jorge Cabral
Re: Mudar cor Shapes em todas as abas
Enviado: 16 Abr 2019 às 21:13
por Jimmy
Olá Jorge,
Veja a planilha anexa, e se é isso que você precisa.
A macro percorre todas as planilhas, e atua em algumas delas, mas pra isso ela precisa, de alguma forma, saber em quais planilhas atuar, e em quais não. Adotei como critério procurar o nome da planilha em tela em uma lista. Isso está dentro da instrução InStr.
O critério pode ser mudado para, por exemplo, todas as planilhas cujo nome inicia pelo sinal de menos. Bastaria renomear as 3 planilhas com –DDD, -ADS e –ZPG, e na macro mudar o if paa verificar se o primeiro caracter do nome da planilha é o sinal de menos. Se você insere e apaga planilhas com frequência, esse método seria melhor porque dispensa inserir o nome da nova planilha dentro da macro. Bastaria colocar menos no nome.
Outro critério seria fazer a mudança de cor em todas as planilhas que contém shapes com aqueles nomes.
Você deve definir qual o critério mais adequado à sua forma de operar a planilha. Após definido, alteramos a macro para segui-lo.
Percebi que você usou ON ERROR RESUME NEXT. Essa instrução não faz os erros não acontecerem, ela apenas inibe o aviso e evita que a macro pare a execução. Não sei se você tem ou não experiência em macros, mas se não tem, é melhor não usar, porque é desejável que você tome conhecimento dos erros para poder corrigi-los. As condições para usar essa instrução são bem específicas, e não frequentes.
Jimmy San Juan
Mudar cor Shapes em todas as abas
Enviado: 16 Abr 2019 às 21:36
por JCabral
Obrigado pela sua solução.
Como posso adaptar o código se o critério for "Outro critério seria fazer a mudança de cor em todas as planilhas que contém shapes com aqueles nomes.", esse era o ideal tendo em consideração outras operações que tenho que fazer.
É possível adaptar?
Obrigado mais uma vez.
Mudar cor Shapes em todas as abas
Enviado: 16 Abr 2019 às 22:37
por Jimmy
Sim, é. Posso dizer que todas as planilhas que tem shapes, tem os 6 shapes que mencionou (eventualmente alguns a mais, mas esses não importam), ou há planilhas que tem shapes mas não tem todos os 6?
Mudar cor Shapes em todas as abas
Enviado: 17 Abr 2019 às 09:59
por JCabral
Boa tarde Jimmy
É assim na minha planilha existem 7 abas que têm as seis Shapes que falei com as seguintes designações - prg_CON; prg_COGP; prg_COCN; prg_COCS; prg_COGL; prg_COS - e em todas estas abas vão existir outras shapes;
O que pretendo é quando mudar as cores das seis Shapes , que será acionado por uma combobox no Ribbon que não está no exemplo que adicionei aqui, sejam mudadas em todas as sete Abas.
Existem outras abas com dados, tabelas, cálculos auxiliares...., mas não têm shapes.
Não sei fui claro?
Obrigado
Jorge Cabral
Re: Mudar cor Shapes em todas as abas
Enviado: 17 Abr 2019 às 13:01
por Jimmy
Sim, foi claro.
Segue a panilha anexa.
Mudei algumas outras coisas na macro, como por exemplo, mudei a shpCON de variável para Constante, uma vez que me parece que seu conteúdo não vai mudar.
Tirei a parte da transformação do código da cor para RGB (a linha onde tinha os 255), uma vez que depois ele era reconvertido de volta de RGB para código. Fica mais fácil usar diretamente a própria variável CColor.
Para acrescentar shapes insira mais linhas na linha da Const (primeira linha) lembrando de colocar o sinal de "_" no final de cada linha (sinal de continuação na linha seguinte), exceto na última.
Acrescenta também na linha dos IFs (If Idx = 1 ...) onde as novas linhas devem ser Idx = 3, Idx = 4, etc...
Se tiver dificuldades avise.
Jimmy San Juan
Mudar cor Shapes em todas as abas
Enviado: 17 Abr 2019 às 14:16
por JCabral
Jimmy San Juan
Ficou TOP, e deu para adaptar fácil na planilha original.
Muito Obrigado
Jorge Cabral