[vba excel] peut-on passer le nom d'une combobox en variable ?
3 réponses
rederon
Bonsoir,
En VBA sous Excel, j'ai une form avec de nombreuses combobox
(combobox1, combobox2, combobox3, etc...)
Lors de l'initialisation, je n'ai rien trouvé de mieux que d'allouer
séquentiellement une valeur à chacune des combobox.
C'est fastidieux mais ça fonctionne. Le problème c'est que ce n'est
pas très modulable.
Sauriez-vous si il y a un moyen d'automatiser l'initialisation des
combobox (avec une boucle par exemple ?)
En fait, ça reviendrait à considérer que le nom des combobox est une
variable de type tableau mais je crains que cela ne soit pas possible.
Si vous avez des suggestions, elles seront les bienvenues.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
YannX
Bnjr,
"rederon" a écrit dans le message de news:
Bonsoir,
Sauriez-vous si il y a un moyen d'automatiser l'initialisation des combobox (avec une boucle par exemple ?)
En fait, ça reviendrait à considérer que le nom des combobox est une variable de type tableau mais je crains que cela ne soit pas possible.
Pas de type tableau, mais un object d'une Collection !
Si vous avez des suggestions, elles seront les bienvenues.
Sans connaitre la bonne reponse, il me semble que tu peux effectuer un For Each ctrl in ....... en utilisant la collection des controles, et en regardant leur type......(comment, je ne sais pas repondre ici !) La voila ta boucle !
@+Y
Bnjr,
"rederon" <rederon@free.fr> a écrit dans le message de
news:17df31ab.0411231721.39524860@posting.google.com...
Bonsoir,
Sauriez-vous si il y a un moyen d'automatiser l'initialisation des
combobox (avec une boucle par exemple ?)
En fait, ça reviendrait à considérer que le nom des combobox est une
variable de type tableau mais je crains que cela ne soit pas possible.
Pas de type tableau, mais un object d'une Collection !
Si vous avez des suggestions, elles seront les bienvenues.
Sans connaitre la bonne reponse, il me semble que tu peux
effectuer un For Each ctrl in .......
en utilisant la collection des controles,
et en regardant leur type......(comment, je ne sais pas repondre ici !)
La voila ta boucle !
Sauriez-vous si il y a un moyen d'automatiser l'initialisation des combobox (avec une boucle par exemple ?)
En fait, ça reviendrait à considérer que le nom des combobox est une variable de type tableau mais je crains que cela ne soit pas possible.
Pas de type tableau, mais un object d'une Collection !
Si vous avez des suggestions, elles seront les bienvenues.
Sans connaitre la bonne reponse, il me semble que tu peux effectuer un For Each ctrl in ....... en utilisant la collection des controles, et en regardant leur type......(comment, je ne sais pas repondre ici !) La voila ta boucle !
@+Y
ng
Salut,
Oui tu peux déclarer tes fonction comme ca :
Sub RempliCombo(oCombo as ComboBox...) ... End Sub
Ensuite avec ForEach :
Option Explicit
Private Sub UserForm_Initialize() Dim oObject As Object For Each oObject In Me.Controls If TypeOf oObject Is ComboBox Then Call RempliCombo(oObject) End If Next End Sub
Public Sub RempliCombo(oCombo As ComboBox) Dim i As Integer Call oCombo.Clear For i = 1 To 10 Call oCombo.AddItem("Item #" & i) Next End Sub
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
rederon wrote:
Bonsoir,
En VBA sous Excel, j'ai une form avec de nombreuses combobox (combobox1, combobox2, combobox3, etc...)
Lors de l'initialisation, je n'ai rien trouvé de mieux que d'allouer séquentiellement une valeur à chacune des combobox. C'est fastidieux mais ça fonctionne. Le problème c'est que ce n'est pas très modulable.
Sauriez-vous si il y a un moyen d'automatiser l'initialisation des combobox (avec une boucle par exemple ?)
En fait, ça reviendrait à considérer que le nom des combobox est une variable de type tableau mais je crains que cela ne soit pas possible.
Si vous avez des suggestions, elles seront les bienvenues.
Merci !
Stephane
Salut,
Oui tu peux déclarer tes fonction comme ca :
Sub RempliCombo(oCombo as ComboBox...)
...
End Sub
Ensuite avec ForEach :
Option Explicit
Private Sub UserForm_Initialize()
Dim oObject As Object
For Each oObject In Me.Controls
If TypeOf oObject Is ComboBox Then
Call RempliCombo(oObject)
End If
Next
End Sub
Public Sub RempliCombo(oCombo As ComboBox)
Dim i As Integer
Call oCombo.Clear
For i = 1 To 10
Call oCombo.AddItem("Item #" & i)
Next
End Sub
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
rederon wrote:
Bonsoir,
En VBA sous Excel, j'ai une form avec de nombreuses combobox
(combobox1, combobox2, combobox3, etc...)
Lors de l'initialisation, je n'ai rien trouvé de mieux que d'allouer
séquentiellement une valeur à chacune des combobox.
C'est fastidieux mais ça fonctionne. Le problème c'est que ce n'est
pas très modulable.
Sauriez-vous si il y a un moyen d'automatiser l'initialisation des
combobox (avec une boucle par exemple ?)
En fait, ça reviendrait à considérer que le nom des combobox est une
variable de type tableau mais je crains que cela ne soit pas possible.
Si vous avez des suggestions, elles seront les bienvenues.
Sub RempliCombo(oCombo as ComboBox...) ... End Sub
Ensuite avec ForEach :
Option Explicit
Private Sub UserForm_Initialize() Dim oObject As Object For Each oObject In Me.Controls If TypeOf oObject Is ComboBox Then Call RempliCombo(oObject) End If Next End Sub
Public Sub RempliCombo(oCombo As ComboBox) Dim i As Integer Call oCombo.Clear For i = 1 To 10 Call oCombo.AddItem("Item #" & i) Next End Sub
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
rederon wrote:
Bonsoir,
En VBA sous Excel, j'ai une form avec de nombreuses combobox (combobox1, combobox2, combobox3, etc...)
Lors de l'initialisation, je n'ai rien trouvé de mieux que d'allouer séquentiellement une valeur à chacune des combobox. C'est fastidieux mais ça fonctionne. Le problème c'est que ce n'est pas très modulable.
Sauriez-vous si il y a un moyen d'automatiser l'initialisation des combobox (avec une boucle par exemple ?)
En fait, ça reviendrait à considérer que le nom des combobox est une variable de type tableau mais je crains que cela ne soit pas possible.
Si vous avez des suggestions, elles seront les bienvenues.
Merci !
Stephane
rederon
Merci beaucoup pour vos réponses rapides et vos conseils éclairés. A+ Stéphane
"ng" wrote in message news:...
Salut,
Oui tu peux déclarer tes fonction comme ca :
Sub RempliCombo(oCombo as ComboBox...) ... End Sub
Ensuite avec ForEach :
Option Explicit
Private Sub UserForm_Initialize() Dim oObject As Object For Each oObject In Me.Controls If TypeOf oObject Is ComboBox Then Call RempliCombo(oObject) End If Next End Sub
Public Sub RempliCombo(oCombo As ComboBox) Dim i As Integer Call oCombo.Clear For i = 1 To 10 Call oCombo.AddItem("Item #" & i) Next End Sub
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
rederon wrote: > Bonsoir, > > En VBA sous Excel, j'ai une form avec de nombreuses combobox > (combobox1, combobox2, combobox3, etc...) > > Lors de l'initialisation, je n'ai rien trouvé de mieux que d'allouer > séquentiellement une valeur à chacune des combobox. > C'est fastidieux mais ça fonctionne. Le problème c'est que ce n'est > pas très modulable. > > Sauriez-vous si il y a un moyen d'automatiser l'initialisation des > combobox (avec une boucle par exemple ?) > > En fait, ça reviendrait à considérer que le nom des combobox est une > variable de type tableau mais je crains que cela ne soit pas possible. > > Si vous avez des suggestions, elles seront les bienvenues. > > Merci ! > > Stephane
Merci beaucoup pour vos réponses rapides et vos conseils éclairés.
A+
Stéphane
"ng" <ng@ngsoft-fr.com> wrote in message news:<OcijT9f0EHA.2824@TK2MSFTNGP09.phx.gbl>...
Salut,
Oui tu peux déclarer tes fonction comme ca :
Sub RempliCombo(oCombo as ComboBox...)
...
End Sub
Ensuite avec ForEach :
Option Explicit
Private Sub UserForm_Initialize()
Dim oObject As Object
For Each oObject In Me.Controls
If TypeOf oObject Is ComboBox Then
Call RempliCombo(oObject)
End If
Next
End Sub
Public Sub RempliCombo(oCombo As ComboBox)
Dim i As Integer
Call oCombo.Clear
For i = 1 To 10
Call oCombo.AddItem("Item #" & i)
Next
End Sub
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
rederon wrote:
> Bonsoir,
>
> En VBA sous Excel, j'ai une form avec de nombreuses combobox
> (combobox1, combobox2, combobox3, etc...)
>
> Lors de l'initialisation, je n'ai rien trouvé de mieux que d'allouer
> séquentiellement une valeur à chacune des combobox.
> C'est fastidieux mais ça fonctionne. Le problème c'est que ce n'est
> pas très modulable.
>
> Sauriez-vous si il y a un moyen d'automatiser l'initialisation des
> combobox (avec une boucle par exemple ?)
>
> En fait, ça reviendrait à considérer que le nom des combobox est une
> variable de type tableau mais je crains que cela ne soit pas possible.
>
> Si vous avez des suggestions, elles seront les bienvenues.
>
> Merci !
>
> Stephane
Merci beaucoup pour vos réponses rapides et vos conseils éclairés. A+ Stéphane
"ng" wrote in message news:...
Salut,
Oui tu peux déclarer tes fonction comme ca :
Sub RempliCombo(oCombo as ComboBox...) ... End Sub
Ensuite avec ForEach :
Option Explicit
Private Sub UserForm_Initialize() Dim oObject As Object For Each oObject In Me.Controls If TypeOf oObject Is ComboBox Then Call RempliCombo(oObject) End If Next End Sub
Public Sub RempliCombo(oCombo As ComboBox) Dim i As Integer Call oCombo.Clear For i = 1 To 10 Call oCombo.AddItem("Item #" & i) Next End Sub
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
rederon wrote: > Bonsoir, > > En VBA sous Excel, j'ai une form avec de nombreuses combobox > (combobox1, combobox2, combobox3, etc...) > > Lors de l'initialisation, je n'ai rien trouvé de mieux que d'allouer > séquentiellement une valeur à chacune des combobox. > C'est fastidieux mais ça fonctionne. Le problème c'est que ce n'est > pas très modulable. > > Sauriez-vous si il y a un moyen d'automatiser l'initialisation des > combobox (avec une boucle par exemple ?) > > En fait, ça reviendrait à considérer que le nom des combobox est une > variable de type tableau mais je crains que cela ne soit pas possible. > > Si vous avez des suggestions, elles seront les bienvenues. > > Merci ! > > Stephane