Notifications
Clear all

Evento onclick em tempo de execução

10 Posts
3 Usuários
0 Reactions
1,900 Visualizações
(@dragunsky)
Posts: 15
Active Member
Topic starter
 

Boa tarde pessoal,

Estou desenvolvendo um formulário dinâmico onde eu escolho uma opção em um listbox e de acordo com a opção (pacote) são criados Option buttons (subpacotes) em tempo de execução. Até aí eu consegui desenvolver, agora estou com problemas em identificar o evento que será disparado quando um Option button é selecionado pois o numero de Option buttons varia de acordo com o pacote selecionado.
Então eu gostaria de saber se alguém conhece alguma forma de criar/disparar o evento onclick destes Option buttons em tempo de execução.
Desculpe não postar nenhum código de referência mas não sei por onde começar.

Desde já Obrigado.
Atenciosamente.

 
Postado : 14/07/2016 2:20 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Disponibilizar um arquivo modelo é um bom começo.

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.

 
Postado : 14/07/2016 3:55 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Enquanto aguardamos seu modelo, criei um exemplo e veja se ajuda.

OptionButton Em Tempo de Execução

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 14/07/2016 5:17 pm
(@dragunsky)
Posts: 15
Active Member
Topic starter
 

Boa tarde Mauro Coutinho,

Seu exemplo faz exatamente o que eu quero. Tenho uma função pronto que coloca em outro frame um novo conjunto de option buttons. Mas como não tenho conhecimento em uso de classes e eventos gostaria de saber se consigo chamar essa função (que está no form) dentro da classe?
Então usando o seu próprio exemplo gostaria de saber se consigo chamar a função criaOptFrame no evento da classe ao invés de mostrar as informações do option selecionado?

Muito Obrigado.

 
Postado : 15/07/2016 11:27 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Dragun, o ideal seria ter colocado a rotina que utiliza para criar os "opts" no outro Frame, mas se entendi, para utilizar o mesmo contexto para o Frame2 é só criar um novo conjunto e nova rotina no modulo de classe, de uma olhada se ajuda.

OptionButons WithEvents Frames

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/07/2016 9:50 pm
(@dragunsky)
Posts: 15
Active Member
Topic starter
 

Bom dia Mauro.

A rotina de criação dos opts não é nada de muito especifico, eu faço uma comparação e quando os pacotes são encontrados eu armazeno em um array os subpacotes do mesmo depois crio os opts com um for.
A dúvida que me resta é se consigo através do evento dos grupos na classe chamar uma function do módulo ou form. Então quando eu clicar em um opt Pacote vai disparar o evento e abrir uma lista de opts Subpacote no frame2.

Agradeço muito a ajuda, e não querendo abusar vocês conhecem algum bom material que trata sobre utilização de classes em vba?

Atenciosamente.

 
Postado : 18/07/2016 8:09 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Dragun, o ideal seria você anexar seu modelo mostrando e detalhando o que pretende, em todos os modelos que enviou são os mesmos que fiz e praticamente não acrescentou nada, somente excluiu, então fiquei sem entender.
Você diz que a rotina que utiliza para criar os opts é basica:
A rotina de criação dos opts não é nada de muito especifico, eu faço uma comparação e quando os pacotes são encontrados eu armazeno em um array os subpacotes do mesmo depois crio os opts com um for.
Mas qual é esta rotina ? Que comparação é esta ? Que tipos de "pacotes encontrados são ? Qual Function seria ?

Nos modelos que anexei, a principio fazem o que solicitou que seria utilizar somente um evento (rotina) para todos os controles,veja que a rotina no modulo de classe é só para capturar qual opt foi clicado, e é a partir dela que você tm de direcionar a outras ações, dependendo atraves de um Select Case, mas sem saber exatamente o que pretende, fica dificil, ainda mais pelo que citei acima, você está anexando os exemplos que fiz sem acrescentar nada.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/07/2016 7:22 pm
(@dragunsky)
Posts: 15
Active Member
Topic starter
 

Bom dia pessoal, Mauro.

Desculpe não ter sido especifico o bastante nos meu exemplos, o tempo não anda permitindo que eu "me ajude" neste ponto. Os pacotes e subpacotes aos quais me refiro são referentes a contas para controle financeiro de uma empresa, Ex.: Pacote PESSOAL, Subpacote SALARIOS. Tenho todas essas informações em uma pequena base e a partir dela estou comparando o valor do pacote passado por uma combobox que abre uma lista d opts subpacotes em um frame. E quando eu escolher um desses opts vai abrir em um segundo frame as contas da empresa.
Não sei se a orientação a objetos me permite usar a solução que adotei, criei o método criaOptFram2 "dentro da classe1" para mostrar uma lista de opts no frame 2. A única diferença do meu projeto é que eu passo por parâmetro qual o subpacote foi selecionado no frame 1 (como anexado).
Não vou por como resolvido ainda, e prometo desenvolver um exemplo simples usando as rotinas do meu projeto.
E quanto a material sobre uso de classe alguém conhece um bom?

Muitissimo Obrigado.
Atenciosamente.

 
Postado : 19/07/2016 5:08 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Dragun, o tempo é meo corrido, e dei uma olhada neste outro modelo que anexou, e sinceramente ainda não compreendi direito o que quer.

De inicio havia entendido da possibilidade de passar uma mesma ação em tempo de execução a vários controles que foi exatamente que os modelos que enviem fazem.

Em uma olhada rápida neste último modelo entendi que ao clicar em um Opt no Frame1 criamos Opts no Frame2, tambem vi que transformou a rotina que cria os Opts no Frame2 em uma Function e colocou no Modulo de Classe, isto não seria necessário, poderia deixar a rotina original no próprio form e chama-la da Instrução que já se encontra no Modulo de Classe, mas lembre-se módulo de CLASSE de um formulário é pertinente somente a ele, então se quisermos criar Váriveis Publica (Globais) temos de Declara-las em um Módulo comum.

Mas voltando as suas questões :
Entendi que tem um Pacote PESSOAL e um Subpacote SALARIOS, mas o que não ficou claro é :
a partir dela estou comparando o valor do pacote passado por uma combobox que abre uma lista de opts subpacotes em um frame
Que lista seria ? Que tipo de comparação se refere ? O que é carregado no Combobox ? Seria a contagem da qde de subpacotes ? Se sim como é feita esta contagem ?

Quanto a Modulos de Classe, tem varios sites a respeito, comece pelo abaixo :
http://ambienteoffice.com.br/blog/intro ... se-no-vba/

Precisaria conhecer seu modelo REAL e o que se refere estes pacotes para poder procurar dar uma ajuda mais precisa, por hora fiz umas novas implementações, de uma olhada se ajuda.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 21/07/2016 11:00 am
(@dragunsky)
Posts: 15
Active Member
Topic starter
 

Bom dia pessoal, Mauro.

Em fim consegui tirar um tempo para desenvolver um modelo mais completo como exemplo. O fluxo principal do programa é; escolher um pacote no combobox; selecionar um subpacote no frame1; selecionar uma conta que aparece no frame2; e finalmente informar os dados da previsão de gastos da conta (esta ultima parte ainda não foi modelada).

Na minha cabeça eu consegui desenvolver o que preciso até o momento (em anexo). Aguardo o contato para que analisem o código para saber se estou utilizando as rotinas corretamente e o modulo de classe que ainda não sei se compreendi seu conceito. Estou aberto a dicas para qualquer melhoria.

Muito obrigado.
Atenciosamente.

 
Postado : 22/07/2016 8:20 am