Re: Evolution d'un UseForm suivant le contenu d'un tableau |
Titre du sujet : Re: Evolution d'un UseForm suivant le contenu d'un tableau par myDearFriend! le 11/08/2009 03:24:02 Re, Tu trouveras ci-joint ton fichier modifié pour tenter de répondre à ton souhait... J'ai utilisé le code suivant (dans le module de code du Userform) : Option Explicit Comme tu le verras, j'ai choisi la solution la plus simple : une listbox pour pouvoir afficher simplement un nombre variable d'éléments. La saisie des quantités est ensuite possible par un simple double-clic dans cette liste. Une autre solution aurait consisté à une création dynamique de contrôles TextBox et Labels. Mais, compte tenu de tes débuts VBA, je te déconseille fortement ce type de solution assez délicate à mettre en oeuvre et nécessitant la modification d'un paramètre de sécurité sur chaque poste devant utiliser le classeur... Quelques points si tu le permets et puisque tu débutes avec VBA : Citation : dedechseb a écrit : Cette mauvaise surprise est causée par la propriété RowSource que tu as utilisée pour charger la ComboBox. Si la feuille active est bien la feuille "Données" au moment où tu affiches ton Userform, alors la RowSource "B5:B...." fonctionnera bien, mais si la feuille active n'est pas la bonne, ta RowSource ne pointera plus au bon endroit ! Tu peux normalement contourner ce problème en nommant au préalable ta plage de cellules, puis en affectant le nom de cette plage à la propriété RowSource (en lieu et place de l'adresse de plage). Cela dit, la meilleur méthode consiste tout simplement à proscrire l'utilisation de cette propriété RowSource. Je te conseille de regarder la méthode AddItem en particulier ou même de faire directement comme je l'ai fait dans le code ci-dessus : on affecte directement les valeurs de toute la plage dans la propriété List de la ComboBox. Cela se passe dans le passage suivant : With Sheets("Données") Par ailleurs, je te recommande fortement l'utilisation de Option Explicit placé en tête de module (comme ci-dessus). Voir le cas échéant, l'explication qui en est faite dans l'article VBA et les variables. Si tu as besoin d'explications complémentaires sur le code que j'ai utilisé plus haut, n'hésite pas. Je te laisse reprendre en main ton projet maintenant et te souhaite un bon développement Cordialement, |
Forums