Logo Hardware.com.br
Intruder18
Intruder18 Novo Membro Registrado
26 Mensagens 2 Curtidas

[Resolvido] VBA Excel

#1 Por Intruder18 30/08/2015 - 02:41
Boa Noite amigos, sou iniciante em VBA e preciso de uma ajudinha.

Tenho uma planilha Excel que atualiza o banco de dados através de outras planilha. Tenho várias guias, cada guia contém dados que são copiados de outras planilhas " que são relatórios que são disponibilizados diariamente. O que eu preciso é o seguinte.

Ao mandar excecutar uma macro ela vai em uma célula da guia principal "A1" se conter a palavra "sim" ela chama "Call" a minha macro que vai abrir a outra planilha copiar, fechar, voltar a planilha de origem e colar. Se tiver escrito "Não" ela pula para a próxima planilha a ser copiada se também estiver escrito sim. Resumindo: Se conter sim ele executa a macro, se tiver não ele pula para a próxima macro a ser executada.
Preciso disso porque tem dias que alguns relatórios não são disponibilizados ai eu evitaria abrir relatórios que não foram atualizados.

Pessoal a macro de copiar os dados eu já tenho, só preciso de uma outra macro que chame "Call" a minha macro se a celular A1 da guia Plan1 estiver escrito "sim".

Espero ter explicado corretamente.
Marcelo G Prudencio
Marcelo G Pr... Geek Registrado
1K Mensagens 227 Curtidas
#2 Por Marcelo G Pr...
30/08/2015 - 10:46
Neste caso insira esse codigo em sua macro

Sub macro()

Range("A1").Select

Do While ActiveCell <> ""

If ActiveCell.Value = "Sim" Then

Call macro

Else

ActiveCell.Offset(1, 0).Select

End If

Loop

End Sub
Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho." - Autor Desconhecido
Simplifica que simples fica. - Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado" - Jorge Paulo Lemann.
Marcelo G Prudencio
Marcelo G Pr... Geek Registrado
1K Mensagens 227 Curtidas
#7 Por Marcelo G Pr...
30/08/2015 - 15:35
Tem que trocar aqui tb

If ActiveCell.Value = "Sim" Then

Ficando assim

If ActiveCell.Value = "VERDADEIRO" Then

É importante lembrar que Verdadeiro é diferente de VERDADEIRO
Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho." - Autor Desconhecido
Simplifica que simples fica. - Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado" - Jorge Paulo Lemann.
Intruder18
Intruder18 Novo Membro Registrado
26 Mensagens 2 Curtidas
#8 Por Intruder18
30/08/2015 - 15:45
Marcelo, eu já tinha feito essa alteração e não funcionou. Qualquer outra palavra funciona, menos VERDADEIRO.

Eu preciso que seja VERDADEIRO, porque ele é inserido automaticamente na célula devido a uma vínculo de caixa de seleção.

Se seleciono a caixa de seleção, autaticamente VERDADEIRO é inserido, se deixo sem selecionar, automaticamente fica FALSO.

Rode a macro ai no Excel e verá que não funciona.

Preciso que a macro deixe usar VERDADEIRO, ou a caixa de seleção retornar outra palavra que a macro reconheça. Consegue me ajudar nisso?
Marcelo G Prudencio
Marcelo G Pr... Geek Registrado
1K Mensagens 227 Curtidas
#9 Por Marcelo G Pr...
30/08/2015 - 16:14
Assim

Sub macro()

Range("A1").Select

Do While ActiveCell <> ""

If ActiveCell.Value = "Verdadeiro" Then

'Call macro 1



Else

Call macro 2

End If

Loop

End Sub


Funcionou
Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho." - Autor Desconhecido
Simplifica que simples fica. - Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado" - Jorge Paulo Lemann.
Marcelo G Prudencio
Marcelo G Pr... Geek Registrado
1K Mensagens 227 Curtidas
#13 Por Marcelo G Pr...
30/08/2015 - 16:37
Coloca isso ActiveCell.Offset(1, 0).Select

Entre o End If e o Loop se nao vc pode entrar em um loop infinito, e travar o excel
Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho." - Autor Desconhecido
Simplifica que simples fica. - Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado" - Jorge Paulo Lemann.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal