Notifications
Clear all

Variavel com o nome do ComboBox

6 Posts
4 Usuários
0 Reactions
1,293 Visualizações
(@gesus)
Posts: 44
Eminent Member
Topic starter
 

Olá Galera,

Gostaria da ajuda de vocês com uma dúvida, estou tentando usar dentro de uma variável o nome do meu comboBox, o intuito é o seguinte!
Tenho cerca de 30 botões (ComboBox1 até ComboBox30), em uma das minhas sheets esta os nomes dos combox (Ex A1 = Combobox1), ate ai sem problemas, o fato é que ao aplicar um laço quero que quando na coluna B1 estiver por exemplo Inativo o ComboBox uma venha (Desabilitado no formulario). Então é possivel ou preciso escrever um código para cada botão?
Resumido - é que quando estiver um certo dado na celula o nome do combox que esta na variavel seja tipo um INDIRETO para o nome do combox!

Obrigado e abcs a todos!
Att
Gesus

 
Postado : 03/11/2015 8:33 am
(@messiasmbm)
Posts: 223
Estimable Member
 

Talvez seja possível mas para isto terá que postar seu exemplo.

 
Postado : 03/11/2015 9:09 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Gesus,

Bom Dia!

Acho que é possível sim. Todavia, não consegui entender sua demanda de maneira nenhuma...!!

Por gentileza, explique melhor. O ideal é anexar um arquivo exemplo (compactado) aqui mesmo no fórum, demonstrando, inclusive, como deverá ser o resultado.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 03/11/2015 9:23 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Com certeza é possível, mas como os colegas disseram o ideal é um modelo e detalhar melhor, e se entendi seria mais ou menos assim :

Ressaltando que esta rotina deve ser colada no no Formulário e irá ser executada quando abrir o mesmo verificando o valor em "B1" e se for "Inativo" definirá a propriedade Enabled para Falso do Combobox cujo o nome está na Variável svlrA1, então como citou 30 Combobox, se a intenção for verificar cada um, temos de construir um LOOP, e para isto o ideal é termos o modelo.

Private Sub UserForm_Initialize()

    Dim svlrA1 'Range em A1
    Dim svlrB1 'Range em B1
    
    svlrA1 = [A1].Value 'Valor em A1 = ComboBox1
    svlrB1 = [B1].Value 'Valor em B1 = Inativo
    
    If svlrB1 = "Inativo" Then
        Me.Controls(svlrA1).Enabled = False
    Else
        Me.Controls(svlrA1).Enabled = True
    End If
    
End Sub

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

 
Postado : 03/11/2015 11:28 am
(@gesus)
Posts: 44
Eminent Member
Topic starter
 

:P Obrigado, Consegui a partir do seu código, obrigado!
(Usei

x = 1
Do While x <= 31
Me.Controls("CheckBox" & x).Value = False
x = x + 1
Loop

Usei o (Controls) conforme seu código, nossa evitou eu ficar repetindo varios códigos, muito obrigado!
São 31 para limpar, em cada formulario!

Presto serviço para uma instituição financeira e não posso disponibilizar, mas irei fazer um arquivo aqui como modelo sem dados reais caso alguem precise!

Obrigado pela ajuda pessoal Abcs

 
Postado : 03/11/2015 11:57 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Ainda bem que o código serviu de base, pois você começou se referindo a controle ComboBox, valores na planilha e finalizou com um Loop em 31 controles do tipo CheckBox onde defini todos como False, ou seja não vi a relação, mas o importante é que deu certo e resolveu.

[]s

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

 
Postado : 03/11/2015 1:13 pm