|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Étudiant Inscription : septembre 2011 Messages : 7 ![]() |
Bonjour tout le monde,
comme vous vous en doutez je viens poster ici car j'ai un problème Voilà j'ai un form nommé "PlanDeControl" dans lequel je souahiterai à l'ouverture ajouter des contrôles de type checkBox en fonction du nombre d'onlgets d'un fichier access dans le répertoire. Jusque là je pensais savoir comment m'y prendre Voici mon code : Code :
Je me suis renseigner sur plusieurs forum et les résultats sont les suivants - Ecrire le nom du formulaire via une variable (solution de 2006 - changer la réfèrence à microsoft ado par microsoft doa, ... marche pas non plus - et j'ai vu sur un autre forum qu'il fallait rentrer les paramètres de ma checkBox dans le createControl, ... sa change rien non plus. J'ai lu beaucoup de chose et parfois sa fait peur mais je n'ai pas trouver la solution à mon porblème. Je vous fais donc un petit récap de ce que je souhaite faire : A l'ouverture de mon form "PlanDeControl" je souhaite que mon code VBA ouvre un fichier excel pour récupérer le nombre d'onglets (jusque là sa marche Merci d'avance à ceux qui me lirons et encore plus à ce qui pourront me donner des conseils ![]() je ne pense pas que mon code soit trop mauvais mais j'arrive pas à mettre le doigt sur l'erreur |
||
|
|
00
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 475 ![]() |
Je n'ai pas de solution direct a ton problème mais je te suggères des voies de contournement :
1) Si tu as un nombre maximum connu d'onglets, pourquoi ne pas créer autant de CheckBox invisibles et les rendre visibles au fur et a mesure des besoins ? 2) Sinon, pourquoi ne pas utiliser une table temporaire dans un sous-formulaire en mode feuille de données pour enregistrer la liste des tes onglets et la sélection. Sa structure est très simple :
Après ton utilisateur peux simplement cocher les enregistrements qu'il veut. Il me semble qu'en A2010 tu peux définir le sous-form pour qu'il occupe toute la surface disponible donc cela ressemblerai à ce que tu veux faire. 3) Remplacer tes check-box par une liste à sélection multiple. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
10
|
|
|
#3 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
salut marot_r
je remarque à la lecture du code qu'il n'y a pas de reset des controles. il est possible que l'erreur vient de l'affection du nouveau control.name avec un déjà préexistant. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Étudiant Inscription : septembre 2011 Messages : 7 ![]() |
Bonjour marot_r et vodiem
Pour ta solution vodiem l'erreur ce produit au niveau du set CB = createControl au premier passage donc je ne pense pas qu'un reset aide mais je vais quand même essayer sa coute rien et je suis loin de tout connaitre .Pour marot_r ta première solution ne marche pas car je n'ai strictement aucune idée de l'évolution du fichier, il peut gagner comme perdre des onglets avec le temps et même si excel ne peut pas sauvegarder des onglets à l'infini vu que je vais rassembler les onlgets de 3 fichiers par form en moyenne, je peux pas me permettre de prévoir des CheckBox. Je garde ta deuxième solution sous le coude, je n'aime pas utiliser les sous formulaires car je ne l'ai maitrise pas encore (mais si j'ai pas le choix je ne vais pas ignorer cette solution Je vous tiendrai au courant et je mettrais résolu si j'ai réglé mon problème.
|
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Étudiant Inscription : septembre 2011 Messages : 7 ![]() |
Rebonjour,
Bon alors petit bilan ![]() Vodiem j'ai essayé de reset le control à chaque tour de boucle mais nada ! Je m'y prends peu-être mal Toujours est il que j'ai créé des listBox à sélection multiple et que cette solution est plutôt bonne en remplacement, même mieu vu quel marche voilà donc ce que j'ai mis dans mon événement load : Code :
Cette solution ralenti un peu le chargement du form mais vu les machines employées par les futurs utilisateurs, cette lenteur sera rapide pour eux ![]() La solution du sous formulaire est peut être plus rapide mais je laisse quelqu'un d'autre la tester Mon premier problème n'est pas résolu mais la solution de la ListBox est une très bonne alternative aux CheckBox même mieu dans le cas où il y en a beaucoup (Plus lisible, Plus facile à sélectionner) donc je mets résolu
|
||
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
j'ai testé ce code en AC2007:
Code :
|
||
|
|
00
|
|
|
#7 | |
|
Invité de passage
![]() Étudiant Inscription : septembre 2011 Messages : 7 ![]() |
j'avais déjà essayer cette solution de tout mettre dans le createControl
Citation:
donc je dois avoir un problème ailleur. il n'y as que cette partie du code qui bug. Peut-être un problème sur les DLL je sais pas. |
|
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
après p'tit test sous AC2010: pas de soucis pour le code...
mais j'ai trouvé effectivement l'erreur: ce n'est pas possible d'exécuter ce code lorsque le formulaire est ouvert ou en cours de chargement. surement parce que le code étant attaché au formulaire il considère celui ouvert même s'il le ferme visuellement ce qui empêche toute modification. pour pouvoir exécuter ce code tu peux (comme je l'ai fait ) exécuter la procédure à partir d'un module. |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Étudiant Inscription : septembre 2011 Messages : 7 ![]() |
Effectivement une fois le code mis dans un module et quelques retouches, cela fonctionne
je ne comprendrai donc jamais le fonctionnement de microsoft Bon merci vodiem pour ton temps. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com