Página 1 de 1
Chamar Macros ao Alterar Valor de Célula
Enviado: 08 Jul 2021 às 16:32
por CAMILOALVES
Boa tarde
O Objetivo planilha é sempre que escolher um nome na combo localizado na célula "G7" acionar macros respectivas.
Se possível, sempre que houver uma troca de nome na célula “G7”, Rodariam macros distintas para cada escolha, por exemplo, se escolher o equipamento "A" Relaciona-se com as ranges (B2:M52; O2:Z52; AB2:AM52; AO2:AZ52) e assim sucessivamente.
Até tentamos um modelo de macro (conforme planilha "Gráfico"), porém sem sucesso.
Ressalva: Maiores detalhes na planilha anexo.
Desde já agradeço
Re: Chamar Macros ao Alterar Valor de Célula
Enviado: 08 Jul 2021 às 21:05
por osvaldomp
Salve, Por CAMILOALVES - 08 Jul 2021 às 16:32.
Cole uma cópia do código abaixo no lugar do existente com nome igual no módulo da planilha
GRAFICOS .
Código: Selecionar todosPrivate Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address <> "$G$7" Or Target.Value = "" Then Exit Sub
On Error Resume Next
Application.Run Target.Value
On Error GoTo 0
End Sub
#
obs.
1. os códigos A, B e C precisam ser removidos do módulo da planilha e colocados em um módulo comum.
2. o código acima funcionou se G7 for A ou B, mas não funcionou se for C (não descobri o motivo), porém funcionou após alterar de C para CC (alterei tanto na macro quanto na lista suspensa).
3. para os demais valores de G7 não encontrei a macro correspondente, então coloquei um tratamento de erro e assim o código irá encerrar sem travar caso a macro não seja encontrada em um módulo comum.
Re: Chamar Macros ao Alterar Valor de Célula
Enviado: 09 Jul 2021 às 16:02
por CAMILOALVES
Prezado osvaldomp - 08 Jul 2021 às 22:05, Boa Tarde!
Primeiramente Muitíssimo Obrigado Por Dispor de Seu Tempo e Conhecimentos Para Ajudar-me.
Então.....
A ideia é essa mesmo, porém, acho que não me expressei direito, os dados a serem exibidos logo após manuseio da combo na célula “G7” da planilha “GRAFICOS”, são os gráficos contidos na planilha “GRAFICOS_01”.
Ressalvas: Apliquei todas as suas orientações, substituindo os códigos e alocando os mesmos para módulo 219. Após as adaptações parou de funcionar, devo ter feito algo de errado.
Se possível teria como Você Analisar onde foi que Eu Errei.
Anexo novamente a planilha com todas as alterações.
Desde Já Agradeço.
Re: Chamar Macros ao Alterar Valor de Célula
Enviado: 09 Jul 2021 às 18:39
por osvaldomp
Salve,
@CAMILOALVES .
Peço desculpas, o erro foi meu.
Coloque uma cópia do código abaixo no lugar do anterior que passei.
Deixei o item
COMPRESSOR comentado pois ele aparece na lista suspensa de G7 porém não encontrei a macro com esse nome e aí retorna erro. Caso venha a existir uma macro com esse nome então basta remover o apóstrofo do início da linha no código.
Código: Selecionar todosPrivate Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address <> "$G$7" Or Target.Value = "" Then Exit Sub
Select Case Target.Value
Case "ASC01": Call ASC01
Case "ASC02": Call ASC02
'Case "COMPRESSOR": Call COMPRESSOR
Case "DESBOBINADEIRA": Call DESBOBINADEIRA
Case "DOBRADEIRA": Call DOBRADEIRA
Case "GUILHOTINA": Call GUILHOTINA
Case "METALEIRA CORTE/FURO": Call METALEIRA_CORTE_FURO
Case "METALEIRA FURO": Call METALEIRA_FURO
Case "PERFILADEIRA CANTONEIRA e VIGA U": Call PERFILADEIRA_CANTONEIRA_VIGA_U
Case "PONTIADEIRA DE SOLDA": Call PONTIADEIRA_SOLDA
Case "PRENSA-DOBRA": Call PRENSA_DOBRA
Case "PRENSA-FURO": Call PRENSA_FURO
Case "ROSQUEADEIRA": Call ROSQUEADEIRA
Case "SERRA FITA": Call SERRA_FITA
Case "SLITTER": Call SLITTER
Case "STEEL DECK": Call STEEL_DECK
End Select
End Sub
Re: Chamar Macros ao Alterar Valor de Célula
Enviado: 13 Jul 2021 às 11:13
por CAMILOALVES
Prezado osvaldomp - 09 Jul 2021 às 19:39, Bom Dia!
Primeiramente Obrigado Pela Paciência e Por Disponibilizar Seu Tempo Para Ajudar-me.
Então...
A ideia é essa mesmo, porém as ranges delimitadas nas macros contidas no Módulo 219 têm o propósito de, ao serem provocadas pelas alterações contidas na célula “G7” da planilha “GRAFICOS”, exibirem os dados respectivos aos gráficos existentes na planilha “GRAFICOS_01”.
Desculpe se não me expressei direito.
Se possível peço que analise a viabilidade do contexto.
Obs: Segue Planilha Já Considerando a Nova Macro.
Atenciosamente
Re: Chamar Macros ao Alterar Valor de Célula
Enviado: 13 Jul 2021 às 19:32
por osvaldomp
Salve, @CAMILOALVES .
Eu tratei apenas do tema do seu tópico, que é "chamar a respectiva macro com base no conteúdo de G7", não me ocupei com a finalidade de cada macro.
Com base nos seus últimos comentários, olhei a primeira macro do Módulo219 e me parece que você quer selecionar alguns intervalos e gravar a seleção em PDF. Como você não indicou a planilha na qual você quer que a seleção seja feita, então a macro atua na planilha ativa.
No entanto, se você quer que a seleção ocorra na planilha GRAFICOS_01, como citado no seu ultimo post, então é preciso indicá-la, algo conforme abaixo.
#
seu código
Sub ASC01()
Range("B2:M52,O2:Z52,AB2:AM52,AO2:AZ52").Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Caminho, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
acrescente o comando para ativar a planilha desejada, conforme em vermelho abaixo
Sub ASC01()
Sheets("GRAFICOS_01 ").Activate
Range("B2:M52,O2:Z52,AB2:AM52,AO2:AZ52").Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Caminho, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
obs.
1. testei esse seu código acima e travou, aparentemente por conta da variável caminho, verifique
2. na linha em vermelho que eu sugeri, o nome da planilha tem um espaço no final. Copiei o nome diretamente da guia da planilha no seu arquivo.
Re: Chamar Macros ao Alterar Valor de Célula
Enviado: 15 Jul 2021 às 10:22
por CAMILOALVES
Prezado osvaldomp - 13 Jul 2021 às 20:32, Bom Dia!
Primeiramente Muito Obrigado Por Disponibilizar Seu Tempo Para Ajudar-me, Pela Compreensão e Paciência. E Desculpe Pelos Transtornos.
Perfeito, Era Isso Mesmo, Segui Suas Orientações e Repliquei o Comando Sheets("GRAFICOS_01 ").Activate para todas as macros do módulo219.
Fica Com DEUS!
Atenciosamente