Remplir plusieurs Combobox

8 réponses
Avatar
Jacques
Bonjour,

J'ai plusieurs Combobox qui doivent contenir la même liste.

cbo_a, cbo_B, cbo_C, ..., cbo_M

Comment alimenter toutes ces listes ?

J'ai essayé ceci mais sans succés :-(
Merci de vos réponses

Jacques

Dim LC As Integer '
Dim NomCbo As String
Dim CboCtrl As ComboBox

For LC = 66 To 77 ' de B à M
NomCbo = "cbo_" & CStr(Chr(LC))
CboCtrl.Name = NomCbo

With CboCtrl
.AddItem "Coucou"
End With

Next

8 réponses

Avatar
tking
Jacques a exprimé avec précision :
Bonjour,

J'ai plusieurs Combobox qui doivent contenir la même liste.

cbo_a, cbo_B, cbo_C, ..., cbo_M

Comment alimenter toutes ces listes ?

J'ai essayé ceci mais sans succés :-(
Merci de vos réponses

Jacques

Dim LC As Integer '
Dim NomCbo As String
Dim CboCtrl As ComboBox

For LC = 66 To 77 ' de B à M
NomCbo = "cbo_" & CStr(Chr(LC))
CboCtrl.Name = NomCbo

With CboCtrl
.AddItem "Coucou"
End With

Next



Pour la partie remplissage, ton code peut ressembler à ça:

With Combo1(x)
.AddItem ("test")
end With



ou x sera une des Combo
Avatar
Jacques93
Bonjour,
tking a écrit :
Jacques a exprimé avec précision :
Bonjour,

J'ai plusieurs Combobox qui doivent contenir la même liste.

cbo_a, cbo_B, cbo_C, ..., cbo_M

Comment alimenter toutes ces listes ?

J'ai essayé ceci mais sans succés :-(
Merci de vos réponses

Jacques

Dim LC As Integer '
Dim NomCbo As String
Dim CboCtrl As ComboBox

For LC = 66 To 77 ' de B à M
NomCbo = "cbo_" & CStr(Chr(LC))
CboCtrl.Name = NomCbo

With CboCtrl
.AddItem "Coucou"
End With

Next



Pour la partie remplissage, ton code peut ressembler à ça:

With Combo1(x)
.AddItem ("test")
end With



ou x sera une des Combo





Je crois que Jacques travaille sous Excel, ou il n'est pas possible
d'indexer les contrôles ...

--
Cordialement,

Jacques.
Avatar
LE TROLL
Bonjour,

Dans le principe car je ne connais pas vbA:

for i = celluleX to celluleY
combo1.additem celluleZ
combo2.additem celluleZ
combo3.additem celluleZ
next i

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques" a écrit dans le
message de news:

| Bonjour,
|
| J'ai plusieurs Combobox qui doivent contenir la
même liste.
|
| cbo_a, cbo_B, cbo_C, ..., cbo_M
|
| Comment alimenter toutes ces listes ?
|
| J'ai essayé ceci mais sans succés :-(
| Merci de vos réponses
|
| Jacques
|
| Dim LC As Integer '
| Dim NomCbo As String
| Dim CboCtrl As ComboBox
|
| For LC = 66 To 77 ' de B à M
| NomCbo = "cbo_" & CStr(Chr(LC))
| CboCtrl.Name = NomCbo
|
| With CboCtrl
| .AddItem "Coucou"
| End With
|
| Next
|
|
|
Avatar
tking
Jacques93 avait énoncé :


Je crois que Jacques travaille sous Excel, ou il n'est pas possible d'indexer
les contrôles ...



Oups... tant pis.
Avatar
Jean-marc
Jacques wrote:
Bonjour,

J'ai plusieurs Combobox qui doivent contenir la même liste.

cbo_a, cbo_B, cbo_C, ..., cbo_M

Comment alimenter toutes ces listes ?



Hello,

j'ai cru comprendre que tu faisais du VBA ?

Est ce que ceci fonctionnerait (ça marche en VB en tout cas) :

Private Sub Command1_Click()
Dim cbo_ctrl As Object

For Each cbo_ctrl In Controls
If TypeOf cbo_ctrl Is ComboBox Then
If Mid$(cbo_ctrl.Name, 1, 4) = "cbo_" Then
Call feed_combo(cbo_ctrl)
End If
End If
Next

End Sub

Private Sub feed_combo(cb As ComboBox)
cb.AddItem "HELLO"
cb.AddItem "WORLD"
cb.ListIndex = 0
End Sub


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Jean-marc
Jean-marc wrote:
Jacques wrote:



Private Sub Command1_Click()
Dim cbo_ctrl As Object

For Each cbo_ctrl In Controls
If TypeOf cbo_ctrl Is ComboBox Then
If Mid$(cbo_ctrl.Name, 1, 4) = "cbo_" Then
Call feed_combo(cbo_ctrl)
End If
End If
Next

End Sub

Private Sub feed_combo(cb As ComboBox)
cb.AddItem "HELLO"
cb.AddItem "WORLD"
cb.ListIndex = 0
End Sub



Et si ce code ne fonctionne pas, il fonctionnera en
le modifiant avec les infos ici présentes:
http://www.ozgrid.com/VBA/control-loop.htm

Voila :-)

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Jean-marc
Jean-marc wrote:
Et si ce code ne fonctionne pas, il fonctionnera en
le modifiant avec les infos ici présentes:
http://www.ozgrid.com/VBA/control-loop.htm




Voici la version VBA, testée et fonctionne :

Private Sub CommandButton1_Click()
Dim c As Control

For Each c In Me.Controls
If TypeName(c) = "ComboBox" Then
If Mid$(c.Name, 1, 4) = "cbo_" Then
Call FeedCombo(c)
End If
End If
Next
End Sub

Private Sub FeedCombo(cbo As ComboBox)

cbo.AddItem "HELLO"
cbo.AddItem "WORLD"
cbo.ListIndex = 0

End Sub


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Vincent Guichard
Bonjour,

En complement de ce que disent les autres intervenants, et valable en ce
qui concerne VB, mais je n'en suis pas sur pour VBA, le container
Controls peut être appelé avec le nom du contrôle comme index.

Vincent Guichard

Dim LC As Integer '
Dim NomCbo As String
Dim CboCtrl As ComboBox

For LC = 66 To 77 ' de B à M
NomCbo = "cbo_" & CStr(Chr(LC))
Set CboCtrl = Controls(NomCbo)

With CboCtrl
.AddItem "Coucou"
End With
Next