Página 1 de 1
Macro
Enviado: 06 Abr 2018 às 13:12
por Julisbas
Tenho 48 planilhas criadas iguais e uma no início com um menu, minha intenção é que a planilha que estiver sendo usada, no menu onde esta descrito seu número mudaria de cor, para a cor vermelha, informando que essa esta com informações digitadas. Eu pensei usar macro, no entanto, teria que criar 96 macros, sendo duas para cada planilha, uma para apertar o botão e o numero mudar de cor para vermelho e outra para retirar a cor vermelha e voltar a cor anterior. Não teria outra forma de fazer essa ação para evitar esse trabalho?
Desde de já agradeço.
At.te
Re: Macro
Enviado: 06 Abr 2018 às 17:22
por babdallas
Eu pensaria em usar o evento worksheet_Change do Workbook. Anexe o arquivo para ficar mais claro o que deseja.
Re: Macro
Enviado: 06 Abr 2018 às 17:38
por osvaldomp
Julisbas escreveu:... a planilha que estiver sendo usada, ~~~> você quer dizer a planilha ativa ?
no menu onde esta descrito seu número mudaria de cor, para a cor vermelha, ~~~> você se refere às guias com os nomes das planilhas ?
informando que essa esta com informações digitadas. ~~~> somente a mudança da cor da guia não permite essa conclusão
Eu pensei usar macro, no entanto, teria que criar 96 macros, ~~~>
Experimente após colar os dois códigos abaixo no módulo de
"EstaPasta_de_trabalho". Não é necessário botão, pois os códigos serão disparados ao ativar/desativar as planilhas.
Se não for esse o resultado desejado, então explique.
Código: Selecionar todosPrivate Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Tab.Color = 255
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Sh.Tab.Color = xlNone
End Sub
Re: Macro
Enviado: 09 Abr 2018 às 10:17
por Julisbas
Experimente após colar os dois códigos abaixo no módulo de
"EstaPasta_de_trabalho". Não é necessário botão, pois os códigos serão disparados ao ativar/desativar as planilhas.
Se não for esse o resultado desejado, então explique.
Código: Selecionar todosPrivate Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Tab.Color = 255
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Sh.Tab.Color = xlNone
End Sub
[/quote]
Bom dia, Osvaldo
A ideia é parecida com essa, mas não é bem assim, o que eu quero é quando eu preencher uma planilha, o link (numeração) dela que esta no sumário (menu) mude para cor vermelha. Quando eu tiver apagado todas as informações dessa planilha o link (numeração) dela que esta no sumário (menu) volta a cor normal anterior. A ideia é para que no sumário venha me mostrar quais planilhas foram editadas.
Desde de já agradeço.
Re: Macro
Enviado: 09 Abr 2018 às 10:30
por osvaldomp
Sugiro que você disponibilize uma amostra do seu arquivo Excel contendo a situação antes e a situação desejada depois de executar a macro, com as explicações nas próprias planilhas.
Re: Macro
Enviado: 09 Abr 2018 às 15:07
por Julisbas
osvaldomp escreveu:Sugiro que você disponibilize uma amostra do seu arquivo Excel contendo a situação antes e a situação desejada depois de executar a macro, com as explicações nas próprias planilhas.
Boa tarde, osvaldo
Estou enviando um arquivo de demostração, vê se conseguiu entender.
At
Re: Macro
Enviado: 09 Abr 2018 às 22:46
por osvaldomp
Cole o código abaixo no lugar dos códigos que eu passei antes.
Código: Selecionar todosPrivate Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim hy As Range
If Sh.Name = "Menu" Or Target.Column <> 2 Then Exit Sub
Set hy = Sheets("Menu").[C:C].Find(Sh.Name, lookat:=xlWhole)
hy.Font.Color = IIf(Sh.Cells(Rows.Count, 2).End(3).Row > 3, vbRed, vbBlue)
End Sub
obs.
1. antes de colar o código desfaça a mesclagem de células ao menos da planilha "
Menu" da linha 4 para baixo (sugiro que você desfaça as mesclagens de todas as planilhas e nunca mais volte a mesclar células, pois células mescladas são desnecessárias, inúteis e podem provocar erros em fórmulas e em macros; como alternativa utilize os recursos de ajustar a largura de coluna e a altura de linha. Em lugar de mesclar células na horizontal você pode conseguir um efeito visual equivalente assim ~~~> ex. digite algo em F5 / selecione as células F5:K5 / Formatar Células / Alinhamento / Horizontal / Centralizar seleção / OK)
2. o código irá retornar erro se o nome da planilha alterada não for encontrado na coluna
C da planilha "
Menu"
Re: Macro
Enviado: 11 Abr 2018 às 09:58
por Julisbas
osvaldomp escreveu:Cole o código abaixo no lugar dos códigos que eu passei antes.
Código: Selecionar todosPrivate Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim hy As Range
If Sh.Name = "Menu" Or Target.Column <> 2 Then Exit Sub
Set hy = Sheets("Menu").[C:C].Find(Sh.Name, lookat:=xlWhole)
hy.Font.Color = IIf(Sh.Cells(Rows.Count, 2).End(3).Row > 3, vbRed, vbBlue)
End Sub
obs.
1. antes de colar o código desfaça a mesclagem de células ao menos da planilha "Menu" da linha 4 para baixo (sugiro que você desfaça as mesclagens de todas as planilhas e nunca mais volte a mesclar células, pois células mescladas são desnecessárias, inúteis e podem provocar erros em fórmulas e em macros; como alternativa utilize os recursos de ajustar a largura de coluna e a altura de linha. Em lugar de mesclar células na horizontal você pode conseguir um efeito visual equivalente assim ~~~> ex. digite algo em F5 / selecione as células F5:K5 / Formatar Células / Alinhamento / Horizontal / Centralizar seleção / OK)
2. o código irá retornar erro se o nome da planilha alterada não for encontrado na coluna C da planilha "Menu"
Bom dia, Osvaldo.
Antes de mais nada, já agradeço pelo código é isso mesmo que eu queria. Agora só preciso de mais uma coisa, quando fui colocar o código para a planilha na qual estou realmente criando, porque a outra foi um teste, na segunda planilha ao começar a digitar da a seguinte mensagem de erro: " Erro 91 - Variável de objeto ou variável com bloco 'With' não foi definida"
Eu sou bem leigo em programação, estudei o código e não consegui identificar, você sabe o que pode está acontecendo?
At
Macro
Enviado: 11 Abr 2018 às 10:26
por osvaldomp
Verifique obs. item 2 do meu post anterior. Se não for esse o erro então disponibilize uma amostra do seu arquivo.
Sugestão - para responder clique em Resposta Rápida ou em +Resposta, só clique em Responder com citação se necessário.