Chamar um Private Sub dentro de outro Private Sub  [Resolvido]

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Chamar um Private Sub dentro de outro Private Sub

Mensagempor Pedro » Qua Jul 10, 2019 9:07 am

Bom dia Gente, estou com um dúvida que parece ser básica, mas não encontrei resposta na internet... :|

O caso é o seguinte:

Eu sempre cri botões de comando para chamar alguma função no evento click, por exemplo:

Código: Selecionar todos
Private Sub BotaoA_Click()
    'Ao clicar no BotaoA chama o Sub ProcedimentoA()
    ProcedimentoA
End Sub

E aí ele faz qualquer coisa que está no "Sub":

Código: Selecionar todos
Sub ProcedimentoA()
    'Faz qualquer coisa qui...
End Sub


A dúvida agora é outra, tem como o "BotaoA" chamar um "Private Sub" invés de um "Sub"?

Eu gostaria de transformar o "ProcedimentoA" em um "Private Sub".
Pedro
Membro
Membro
 
Mensagens: 370
Registrado em: Qui Mai 10, 2012 4:39 pm
Localização: Canoas - RS
Has thanked: 146 times
Have thanks: 19 times

{ SO_SELECT }

Re: Chamar um Private Sub dentro de outro Private Sub  [Resolvido]

Mensagempor wagner » Qua Jul 10, 2019 1:28 pm

Pedro,

Boa tarde!

Perfeitamente possível. Veja, Fiz o seguinte teste por aqui:
1 - Inseri um userform e dois controles (um botão, que chamei BotãoA e um combobox que deixei com o nome padrão do VBA).
2 - No evento Click do userform eu inseri o seguinte código para carregar dados do combobox:
Código: Selecionar todos
Private Sub UserForm_Click()
    Dim i As Long
    For i = 1 To 100
        ComboBox1.AddItem i
    Next i
End Sub

3 - No evento click do BotãoA eu inseri o seguinte código para que quando clicar nele, chamar a Private Sub Userform_Click e carregar os dados no combo
Código: Selecionar todos
Private Sub BotaoA_Click()
    Call UserForm_Click
End Sub
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel

For this post the author wagner thanked:
Pedro (Qui Jul 11, 2019 5:55 pm)
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 5501
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 100 times
Have thanks: 2331 times

Re: Chamar um Private Sub dentro de outro Private Sub

Mensagempor Coutinho » Qua Jul 10, 2019 2:10 pm

Pedro, se entendi sua duvida, primeiro voce tem de entender a diferença entre os Procedimentos "Public e Private", não é muito dificil porque os nomes já são explicativos, mas no funcionamento dentro do projeto é que os Procedimentos Private só podem ser executados dentro do Módulo onde foram escritas e as Publicas de qualquer local, então se tiver uma Macro "Private" dentro de um modulo de evento de uma planilha, não conseguiremos chama-la em outro modulo separado.

Quanto a :
A dúvida agora é outra, tem como o "BotaoA" chamar um "Private Sub" invés de um "Sub"?
SiM, desde que a "Private Sub" esteja no mesmo módulo.

Eu gostaria de transformar o "ProcedimentoA" em um "Private Sub".
Para transfoma-la em Private é só adicionar "Private" no inico da macro, por exemplo :
Código: Selecionar todos
Sub Meu_Teste()
ficaria
Código: Selecionar todos
Private Sub Meu_Teste()

De uma olhada na matéria abaixo, está bem explicada
Rotinas públicas e privadas
http://www.cavalcanteassociados.com.br/ ... php?id=659

Espero que seja isso o que queria, qualquer duvida retorne.

[]s
Mauro Coutinho
Mauro Coutinho
com novo usuário devido a manutenção do grupo

For this post the author Coutinho thanked: 2
JSCOPA10 (Qui Jul 11, 2019 10:00 pm) • Pedro (Qui Jul 11, 2019 5:55 pm)
Coutinho
Ninja do Excel
Ninja do Excel
 
Mensagens: 36
Registrado em: Qua Jun 12, 2019 6:18 pm
Has thanked: 2 times
Have thanks: 15 times

Re: Chamar um Private Sub dentro de outro Private Sub

Mensagempor Pedro » Qui Jul 11, 2019 5:55 pm

Aprendi, muito obrigado pelo ensinamento de ambos!
Pedro
Membro
Membro
 
Mensagens: 370
Registrado em: Qui Mai 10, 2012 4:39 pm
Localização: Canoas - RS
Has thanked: 146 times
Have thanks: 19 times

Re: Chamar um Private Sub dentro de outro Private Sub

Mensagempor JSCOPA10 » Qui Jul 11, 2019 10:09 pm

.
Porque trancar, tão rápido, um tópico tão elucidador para os aprendiz de VBA??!! ... Coutinho, show sua explicação, valeu!!!

For this post the author JSCOPA10 thanked:
Coutinho (Seg Jul 15, 2019 9:22 am)
Avatar do usuário
JSCOPA10
Ninja do Excel
Ninja do Excel
 
Mensagens: 74
Registrado em: Qua Jun 19, 2019 9:11 pm
Has thanked: 7 times
Have thanks: 25 times

Re: Chamar um Private Sub dentro de outro Private Sub

Mensagempor Adalberto7 » Sex Jul 12, 2019 10:44 am

JSCOPA10 escreveu:.
Porque trancar, tão rápido, um tópico tão elucidador para os aprendiz de VBA??!! ... Coutinho, show sua explicação, valeu!!!


Para manter a boa organização do fórum, trancamos os tópicos já marcados como Resolvido.
Se deixar o tópico sem trancar, outros usuários postam suas dúvidas
Como essa plataforma não tem muitos recursos, quando acesso o fórum, utilizo a opção de Ver novas mensagens para acessar os tópicos e quando estão marcados como Resolvido, já tranco.

Não tenho tempo de ficar analisando tópico por tópico e também, se deixar aberto e ninguém mais postar, ele ficará aberto até que alguém poste indevidamente lá, pois só irá voltar para a relação se houver novas postagens.

As regra é essa e assim está funcionando bem, sendo mantido a organização, com constante monitoração de SPANS e tópicos postados em local errado.

Adalberto
Antigo Patropi
Se foi útil, clique na mãozinha
Avatar do usuário
Adalberto7
Ninja do Excel
Ninja do Excel
 
Mensagens: 74
Registrado em: Qua Jun 19, 2019 9:33 pm
Has thanked: 3 times
Have thanks: 22 times


Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: LaerteB e 5 visitantes