Suppression de controles, pb de logique ??? [Résolu] - VB/VBA/VBS - Programmation
Marsh Posté le 12-04-2006 à 10:30:00
Fais une boucle normale avec un indice i
Mais tu dois partir de Controls.count (ou Controls.count-1 je sais plus comment sont indicés les objets de cette collection) pour arriver à 1 (ou 0).
En effet si tu supprimes un objet de la collection, l'objet suivant prend son indice; donc il faut commencer par la fin pour que le traitement ne soit pas perturbé.
La boucle For Each n'est pas bien étudiée pour gérer ce genre de cas
Marsh Posté le 12-04-2006 à 17:58:44
Bonjour,
Ca marche Nickel !
Je pensais bien que je m'y prenait mal
L'indice commence bien à 0
Merci beaucoup pour ton aide
Marsh Posté le 11-04-2006 à 19:51:42
Bonsoir à tous
Je suis sortie de mon trou de souris avec un nouveau pb
Je veux supprimer les contrôles d'un formulaire, voila mon bout de code :
For Each ctl In Forms!ListePanierTravail.Controls
DeleteControl "ListePanierTravail", ctl.Name
Next
A priori, pas bien compliqué mais ca ne marche pas, il ne me supprime que la moitié des controles
en débuggant je m'aperçois que le fait de "deleter" un contrôle induit un "next",
du coup le "next" de la boucle "For each" fait qu'il ne traite qu'un controle sur 2
Je pense que c'est plus un problème de logique qu'autre chose mais je n'arrive pas à m'en dépatouiller
Pourrais encore faire appel à votre aide ?
D'avance merci
Message édité par Parmenion le 12-04-2006 à 18:00:09