Usuário com melhor resposta
Dois ou mais comandos VBA-excel para dois ou mais botões na mesma planilha (aba)

Pergunta
-
Pessoal
Uso o comando abaixo para ocultar e exibir dois intervalos de linhas no excel. Aplico esse comando a um botão e o mesmo funciona perfeitamente.
Sub Macro1() Call exibirocultar("26:32") Call exibirocultar("121:122") End Sub Public Sub exibirocultar(ByVal linhaColuna As String) Rows(linhaColuna).EntireRow.Hidden = IIf(Rows(linhaColuna).EntireRow.Hidden, False, True) End Sub
Entretanto, caso eu queira montar outro comando na mesma planilha, sendo que esse novo comando eu aplicarei um novo botão?
Isso é possível, já que possuímos só um bloco de códigos (Alt+F11) para cada planilha? É possível inserir dois ou mais comandos para dois ou mais botões diferentes em uma mesma planilha (aba)?
Grato pelo auxilio.
Cleberton Brandão Jr
Respostas
-
Primeiramente, insira num módulo qualquer o código abaixo:
Sub Botão1() Call exibirocultar("26:32") Call exibirocultar("121:122") End Sub Sub Botão2() Call exibirocultar("50:56") Call exibirocultar("200:235") End Sub Private Sub exibirocultar(ByVal linhaColuna As String) Rows(linhaColuna).EntireRow.Hidden = Not Rows(linhaColuna).EntireRow.Hidden End Sub
Crie dois botões (ou mais) na planilha que desejar esse comando. Para um botão, atribua a macro chamada Botão1. Para o outro botão, atribua a macro chamada Botão2.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Sugerido como Resposta Hezequias VasconcelosModerator quarta-feira, 31 de outubro de 2012 14:29
- Marcado como Resposta Brandão Jr quarta-feira, 31 de outubro de 2012 22:38
Todas as Respostas
-
Sim, é possível.
Aproveitando, você pode simplificar seu código para:
Sub Macro1() Call exibirocultar("26:32") Call exibirocultar("121:122") End Sub Sub exibirocultar(ByVal linhaColuna As String) Rows(linhaColuna).EntireRow.Hidden = Not Rows(linhaColuna).EntireRow.Hidden End Sub
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
-
Opa Felipe,
Valeu pelo comando simplificado. Vou ajustar aqui.
Entretanto me dê uma mãozinha. Levando em consideração que usarei comando semelhantes.
Como vc pode ver no exemplo abaixo a unica coisa q muda é o numero do intervalo das linhas.
Exemplo:
Sub Macro1() Call exibirocultar("26:32") Call exibirocultar("121:122") End Sub Sub exibirocultar(ByVal linhaColuna As String) Rows(linhaColuna).EntireRow.Hidden = Not Rows(linhaColuna).EntireRow.Hidden End Sub Sub Macro1() Call exibirocultar("50:56") Call exibirocultar("200:235") End Sub Sub exibirocultar(ByVal linhaColuna As String) Rows(linhaColuna).EntireRow.Hidden = Not Rows(linhaColuna).EntireRow.Hidden End Sub
Se eu quisesse destinar cada comando a seu Botão respectivo, o q eu deveria fazer? Acrescento qual informação?
Nesse exemplo usei comandos semelhantes, entretanto se fossem comandos diferente, eu trataria do mesmo jeito?
Brother valeu pelo auxilio.
Cleberton Brandão Jr
-
-
Vamos lá.
Em uma da abas da planilha criei um botão que faz roda o comando mostrado acima. Quando clico nele o intervalo de linhas 26:32 e 121:122 são ocultadas. Quando Clico novamente elas são exibidas. Minha intenção no momento é q outros intervalos de linhas, no caso 50:56 e 200:235, também sejam ocultadas/exibidas a partir de um clic. Só que neste segundo caso seria em um outro botão criado.
Quando usamos o (Alt + F11), abrindo assim o Microsoft Visual Basic, observamos que cada aba da planilha possui uma local para colocarmos os comandos do Visual Basic rodando assim o Macro.
MInha duvida é:
- Levando-se em consideração que tenho dois comandos no Microsoft Visual Basic na mesma planilha, e neste caso semelhantes, como faço para destinar cada comando a um botão botão especifico.
Espero ter esclarecido melhor minha duvida.
Muito pela ajuda cara.
Cleberton Brandão Jr
-
Primeiramente, insira num módulo qualquer o código abaixo:
Sub Botão1() Call exibirocultar("26:32") Call exibirocultar("121:122") End Sub Sub Botão2() Call exibirocultar("50:56") Call exibirocultar("200:235") End Sub Private Sub exibirocultar(ByVal linhaColuna As String) Rows(linhaColuna).EntireRow.Hidden = Not Rows(linhaColuna).EntireRow.Hidden End Sub
Crie dois botões (ou mais) na planilha que desejar esse comando. Para um botão, atribua a macro chamada Botão1. Para o outro botão, atribua a macro chamada Botão2.
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
- Sugerido como Resposta Hezequias VasconcelosModerator quarta-feira, 31 de outubro de 2012 14:29
- Marcado como Resposta Brandão Jr quarta-feira, 31 de outubro de 2012 22:38