Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/07/2007, 18h44   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 28
Points : 1
Points : 1
Par défaut For Each ? In ? (collection)

Bonjour,

J’ai un frame contenant 10 ComboBox

Je veux les initialiser avec une boucle For Each … Next au lieu de répéter 10 fois la même chose. :

Code :
1
2
3
For Each ComboBox In ????
…
Next ComboBox
Est-ce que ça se fait ? Dois-je déclarer une collection ? Déclarer un tableau et faire une boucle For Next ?

J’ai essayé toutes sortes de choses mais je n’y arrive pas.

Supposons que je renomme les ComboBox Boite 1 à 10, j’utilise toujours For Each ComboBox ou je dois changer les noms ?

Merci!
Liz99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 20h52   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
ComboBox est un membre de la collection Controls d'un formulaire.

Il suffit de faire une boucle sur tous les contrôles de ton formulaire, et n'utiliser que la valeur des contrôles qui sont des combo.

Code :
1
2
3
4
5
6
7
8
9
10
11
 
Sub TestCtrlBox()
Dim ctrl As Control
Load UserForm1
UserForm1.Show
 
For Each ctrl In UserForm1.Controls
Debug.Print ctrl.Name
Next
 
End Sub
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 02h09   #3
Invité de passage
 
Inscription : juillet 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 28
Points : 1
Points : 1
Mille mercis pour cette procédure, elle me sera fort utile.

Toutefois, elle traite tous les contrôles, dans l'ensemble du userform.

Je travaille en multipage et je veux cibler des groupes de contrôles en particulier. Je présume que je n'aurai pas le choix que de créer mes propres collections ?

Merci encore!
Liz99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 08h16   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Dans la procédure que je viens de te donner, il est vrais que tous les contrôles sont traité, mais on peut récupérer leur nom, si tu donnes un nom par ComboXXXXX aux combo, tu peut vérifier si le nom commence par combo avec un left(ctrl.name, 5)
Si cette fonction renvoie combo, il faut traiter le contrôle, dans le cas contraire, passer au suivant.


Code :
1
2
 
If Left(ctrl.Name,5) = "combo" then   Ce que je dois faire
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 18h06   #5
Invité de passage
 
Inscription : juillet 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 28
Points : 1
Points : 1
Merci beaucoup, je vais expérimenter avec ça dès que je trouve deux minutes.
Liz99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h26.


 
 
 
 
Partenaires

Hébergement Web