Notifications
Clear all

Executar macro sem ferramenta de controle

5 Posts
2 Usuários
0 Reactions
549 Visualizações
 FBO
(@fbo)
Posts: 0
New Member
Topic starter
 

Pessoal,

Tô quebrando a cabeça aqui porque não entendo muito de macro. Tô fazendo uma macro para ocultar uma linha quando uma célula tiver um resultado X. Só que essa macro só é executada quando eu clico em executar.

Encontrei uma macro na internet que parece ajudar:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$V$93" Then
        
        Call OcultaCusteio
               
End If
End Sub

O problema é que não sei onde colocar esse código. Quando eu coloco pra executar, aparece uma lista de macros pra executar, inclusive a que é pra essa aí executar que é a seguinte:

Sub OcultaCusteio()
If Worksheets("PROPOSTA").Range("C97").Value = 1 Then
Rows("97:97").Select
Selection.EntireRow.Hidden = True
Else
Rows("97:97").Select
Selection.EntireRow.Hidden = False
End If
End Sub

Então tem como eu unificar as macros ou como faço pra essa que executa a OcultaCusteio ativar?

Tô precisando ajuda pra ontem, please!!

 
Postado : 10/04/2015 11:09 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

COMPACTE e disponibilize um modelo..

qto a sua solicitação, é o seguinte
Com o Excel aberto, no seu arquivo, tecle Alt+F11
Na tela do VBE, tecle Ctrl+R
Nesta tela de explorador de projeto, procure seu arquivo, e brinque com a estrutura de árvore dele, veja os objetos e como são dispostos.

Perceba que existem objetos do tipo planilha e um objeto do tipo pasta de trabalho, que é o arquivo.
O código Worksheet_Change precisa estar num desses do tipo planilha (clicando duas vezes em um deles, vc vê a página (ou folha) de código...
O problema é que vc não quer que seu código rode a cada mudança na planilha *(que é o que o worksheet_change faz). Então isso não fará sentido.

Vc quer criar um botao que rode o OcultaCusteio.
Então a primeira coisa, é clicar com o botão direito sobre seu arquivo, ainda nessa janela, e Inserir / Módulo
Neste módulo, vc cola seu código do OcultaCusteio. Só isso.

Tecle Alt+F4 para fechar o VBE e voltar ao Excel.

Vá na guia desenvolvedor e selecione Inserir, escolha um botão do Controles ActiveX
Coloque o botão na planilha
Duploclique no botão, aparecerá a folha de código da planilha com o código do botão, mas em branco
Escreva dentro do código do botão:
Call OcultaCusteio

E pronto...

 
Postado : 10/04/2015 11:47 am
 FBO
(@fbo)
Posts: 0
New Member
Topic starter
 

Entendi quanto ao Worksheet_Change, mas o problema é que eu quero que rode sem uma ferramenta de controle, como um botão. Ele precisa rodar quando a célula V93 for alterada...

 
Postado : 10/04/2015 11:53 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Veja em:
Esse tipo (Private Sub Worksheet_Change(ByVal Target As Range)) insira em
Inserir Código num Objeto
http://www.ambienteoffice.com.br/office ... num_objeto

O segundo em:
Criar um Módulo no VBE no mesmo link!!!!

Att

 
Postado : 10/04/2015 12:09 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Então tudo bem, coloque o código do worksheet_change na folha de código da planilha em que vc quer isso acontecendo ;-)

 
Postado : 10/04/2015 12:54 pm