Notifications
Clear all

[Resolvido] Código para criar botão de comando

3 Posts
2 Usuários
2 Reactions
1,235 Visualizações
(@topscore)
Posts: 41
Eminent Member
Topic starter
 

Pessoal, seguinte:

No meu Formulário, tenho um botão que permite ao usuário criar abas novas: monta, configura, coloca fórmulas, etc.

Usando o código: ActiveSheet.OLEObjects.Add,    ele também cria um botão nessa nova aba. É através desse botão que o usuário vai voltar ao formulário. *É o único jeito de o usuário voltar ao Form principal.

Por isso preciso que esse novo botão, criado automaticamente nessa nova aba, volte ao formulário executando o seguinte código:

FOpcoes1.show

 

Como fazer meu código que gera a nova aba  - Sub GerarBudget() - também gerar o botão (ActiveSheet.OLEObjects.Add) e que o botão saiba que, no clique, vai executar : FOpcoes1.show?

 

Alguém pode ajudar? Desde já, obrigado.

 
Postado : 08/05/2021 4:03 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Boa noite, @topscore

Vi que vc já marcou o tópico como resolvido. Se de fato está resolvido, seria interessante compartilhar a solução com os demais colegas.

Se ainda não resolveu, comente aqui até que ponto chegou pra tentarmos ajudar.

Com relação ao problema descrito, para criar botões on the fly, melhor seria ao invés de controles ActiveX (OleObjects, no caso MSForms.CommandButton) usar botão tipo controle de formulário mesmo (Excel.Button) ou formas (Shapes) pois aí é só atribuir o nome da macro já criada à propriedade OnAction da forma. Outra vantagem ainda é que vc pode ter uma única Sub para atender a muitos botões criados.

Já os CommandButtons tipo ActiveX vc teria que inserir o código no módulo da Planilha recém-criada também on the fly, o que aumentaria desnecessariamente, no meu entendimento, a complexidade do código.

Vc também poderia criar formas nas novas planilhas e associar hiperlinks a elas ao invés de macro, direcionando para uma planilha mestre que tenha o botão de acessar o UserForm.

 
Postado : 10/05/2021 3:01 am
Reinaldo reacted
(@topscore)
Posts: 41
Eminent Member
Topic starter
 

@edsonbr

Tem razão, é o seguinte:

Fiz uma ABA base oculta, de onde copio ela inteira para a nova aba criada. Nessa aba base, coloquei um botão com uma macro que abre meu formulário.

Aqui está o segredo, NÃO usar o botão do VB, pois ele cola o botão sem o comando. Inseri uma forma, desenhei o botão, e atribui a macro para abrir o formulário.

Funciona perfeitamente, o usuário pode inserir quantas abas quiser, sempre poderá clicar e abrir o formulário "FOpções" para manipular a Aba e voltar ao F principal.

Obrigado Edson, que já me salvou dezenas de vezes!

 
Postado : 10/05/2021 7:33 pm
EdsonBR reacted