Notifications
Clear all

Preencher vários combobox de uma vez

3 Posts
1 Usuários
0 Reactions
618 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite,

Tenho 45 combobox em um formulário, e todos serão alimentados pela mesma ABA, gostaria de saber se existe alguma forma de popular todos de uma vez, ou se vou ter que inserir uma rotina para cada COMBO. Hoje eu preencho cada combo com a rotina abaixo, mas fica um código gigantesco.... :(

Dim linha1 As Integer
Dim j1 As Integer

linha1 = Sheets("BDTR").Range("B65536").End(xlUp).Row

For j1 = 2 To linha1
With Me.ComboBox8

.AddItem Sheets("BDTR").Range("B" & j1).Value
End With

Next j1
 
Postado : 21/01/2016 9:33 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Se entendi, todos os combos são preenchidos com os mesmos dados, então podemos definir um nome ao Range e preencher todos os Combos com a instrução abaixo:

Private Sub CommandButton1_Click()

    Dim cCont As Control
    Dim sNome As Control

    'Capturamos o Range preenchido e definimos um Nome
    Sheets("BDTR").Range("B2", Sheets("BDTR").Range("B" & Rows.Count).End(xlUp)).Name = "DinamicoRowSource"
    
    'Para Cada controle no Form
    For Each cCont In Me.Controls
        
        'Se tipo ComboBox
        If TypeName(cCont) = "ComboBox" Then

            Set sNome = cCont
            'Definomos o Rowsource
            sNome.RowSource = "DinamicoRowSource"
        End If

    Next cCont

End Sub
 
Postado : 22/01/2016 6:40 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Perfeito Mauro !!!

Eu estava fazendo um a um... rapaz, voce me fez evitar um trabalhão e criar uma rotina gigante.

Valeu por mais essa. Abraço amigo

 
Postado : 22/01/2016 8:19 am