Notifications
Clear all

Atribuir Macro - Caixa de Combinação

9 Posts
2 Usuários
0 Reactions
7,579 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Galera...Boa Noite!

Sou iniciante em VBA, e infelizmente não consegui tirar a minha dúvida em nenhum site.
Como eu faço para atribuir uma macro diferente para cada item que eu selecionar em uma caixa de combinação?

Eu tentei gravar uma Macro, porém ela não reconheceu que um item tinha sido selecionado.

Obrigado!

 
Postado : 08/07/2009 9:10 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Júnior,

estou supondo que a Caixa de Combinação esteja num UserForm ou, caso esteja na planilha, tenha sido criada a partir de Ferramentas de Controle(ActiveX) e não Formulários.

No código do referido controle, por exemplo:

Private Sub ComboBox1_Change()

If ComboBox1.Value = "Macro1" Then
Call Macro1
ElseIf ComboBox1.Value = "Macro2" Then
Call Macro2
Else
Call Macro3
End If

End Sub

 
Postado : 08/07/2009 9:48 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Eu até ia falar alguma coisinha, mas o Edson matou a pau!

eu fico é quieto, já to antevendo o nível do forum, em menos de uma semana ja tem bastante craque por perto!

abraço!

:geek:

 
Postado : 08/07/2009 10:48 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Owww...até que enfim alguém me explicou o que eu estava fazendo de errado. Eu estava justamente criando uma caixa de combinação através de formulários...hehehe...Nossa nunca tinha reparado nesta ferramenta. Eu a assemelhava com formulários.
Agora as coisas estão ficando mais claras.

Porém, como eu não sabia deste Ferramenta não sei manuseá-la muito bem:
1- Como eu faço para que os itens não se repitam? Eu consegui add alguns itens, mas todos eles se repetem, e mais de uma vez.
2- O código que você exemplificou deve ser incluído no ComboBox ou em Módulos?

E desculpa a ignorância, mas quando eu criei a caixa de combinação através de Ferramentas de Controle apareceu a fórmula "=INCORPORAR("Forms.ComboBox.1";"")". Há necessidade de preencher esta fórmula, ou só preciso executar pelo VBA?

Edson, Muito Obrigado! :D

 
Postado : 09/07/2009 4:15 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

1- Como eu faço para que os itens não se repitam? Eu consegui add alguns itens, mas todos eles se repetem, e mais de uma vez.
2- O código que você exemplificou deve ser incluído no ComboBox ou em Módulos?

1 - Para adicionar itens, eu entendo que a melhor maneira é criando uma lista na própria planilha, nomeando tal intervalo e na propriedade ListFillRange você digita o nome escolhido. (Se a Caixa de Combinação estivesse num UserForm, a Propriedade seria RowSource)

2 - O código pertence à ComboBox. Estando em Modo Deseign, basta 'duploclique' sobre o controle ou clicar com o botão direito/Exibir código.
Já as Macros que serão chamadas (Macro1, Macro2 e Macro3, no exemplo) de preferência que estejam num Módulo.

 
Postado : 10/07/2009 8:01 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Edson...Valeu mesmo kara, me ajudou muito!

 
Postado : 12/07/2009 11:10 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Só complementando...

A formula INCORPORAR("classe.objeto") é usada pelo Excel para colocar esses objetos na planilha.
Voce nao precisac colocar essa formula,ate pq nao vai consegui mesmo.
O Excel não entende como função

 
Postado : 29/07/2009 10:29 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Vlw galera estou no forum a alguns dias e já tem me ajudado bastante
Esse tópico resolveu meu problema

 
Postado : 24/02/2012 11:27 pm
(@honda-jr)
Posts: 5
Active Member
 

Opa, muito simples seu post Edson.
Sou iniciante em VBA, apesar de já ter trabalhado com VB.
Seu exemplo matou a charada... Muito obrigado!
Excelente Site

 
Postado : 15/10/2012 9:00 am