Compléter combobox à partir d'une listbox

Bonjour à toutes et à tous

Je voudrais savoir si il est possible de compléter un combobox en cliquant sur un numéro d'une listbox.

Je joins le code de ma listbox.

Je voudrais savoir si en cliquant sur la colonne A de la listbox, cela permettra de compléter la combobox 1 du userform ou se trouve la listbox et le combobox.

Merci d'avance pour votre aide.

Bonjour,

Il serait mieux d'utiliser les balises Code pour y placer ton code, cela conserve l'indentation et en facilite donc la lecture...

Remarques :

1) Ta procédure, qui semble être une proc. d'initialisation, est curieusement affectée à un bouton ! Il serait bon d'en exposer les raisons...

2) Dans ton initialisation de DerLig, Cells n'est pas qualifiée (ne réfère pas à une feuille) : pour un code propre et efficace, il serait bon de ne pas laisser VBA chercher dans quelle feuille il doit trouver une cellule ou une plage, mais le lui spécifier explicitement.

3) Ces deux lignes :

    ListBox1.ColumnCount = 7
    ListBox1.ColumnWidths = "30;130;110;200;65;170;75"

A moins que le nombre de colonnes de ta ListBox varie en cours d'exécution, de même que la largeur des colonnes, ce qui me semble douteux, ces 2 lignes n'ont rien à faire ici, les propriétés par défaut se définissent à la conception dans la fenêtre de propriété...

4) Etant donné que tu insères dans ta ListBox toutes les lignes de ta plage source, l'utilisation de AddItem complétée par l'affectation des éléments de chaque ligne colonne par colonne ne se justifie pas. L'affectation de l'ensemble de la plage visée, en tant que tableau au moyen de List est plus indiqué, et plus rapide aussi !

5) En cliquant dans la ListBox lors de l'utilisation, tu cliques sur une ligne, qui sera sélectionnée...

Ne disant rien de ta ComboBox ni de son contenu, je ne vois pas comment on pourrait répondre à ta question ! Désolé !

Cordialement.

Bonjour Mferrrand

Quand je lis tes remarques je me sens à la rue.

1) j'aurai voulu que la listbox se remplisse automatiquement, mais je n'y arrive pas donc j'ai mis un bouton.

2) j'ai mis la feuille concerné en entête mais est ce suffisant ?

3) et 4) ?

5) Je voudrais que lors du clic sur une ligne dans la listbox le N° ID soit copié dans la combobox 1 et donc les textbox se complètent automatiquement pour pouvoir modifier les données.

Je joins le fichier :https://www.cjoint.com/c/HFfl4PgKeDr

Merci d'avance à toi.

Re MFerrand

J'ai trouvé, remplissage automatique de la ListBox1, par userform1 initialize.

et combobox complété par double clic.

Tes questions m'ont obligé à faire un peu mieux fonctionner les quelques cellules grises qui me reste.

Encore merci.

A te relire.

Bonsoir,

J'espère pour toi que tes trouvailles porteront leurs fruits...

En tout cas, si tu n'as pas encore eu l'occasion de le lire sous ma plume, sache que je n'apprécie guère que l'on me modifie l'interface lorsque j'ouvre un fichier pour l'examiner (et note, cela peut servir, que je ne suis pas le seul dans ce cas ! ). De même, si le contrôle des actions de l'utilisateur peut s'avérer légitime, je ne trouve pas judicieux les dispositions contraignantes qui font que l'on ne peut revenir en arrière, soit lorsqu'on déclenche l'ouverture d'un Userform, qu'il n'y ait pas possibilité d'annuler en le fermant...

Ceci étant précisé, lorsque l'exécution du code ne fait pas de dégât, je prends la peine de supprimer ou désactiver tout ce qui modifie l'interface et d'examiner tout de même... mais là j'ai trouvé le code correspondant un peu trop abondant, et j'ai donc fermé le tout en remettant à plus tard !

De toute façon, tu n'as pas indiqué où trouver le code correspondant à ta question... et dans le contexte, je n'avais pas l'intention de le chercher !

Comme j'ai les yeux ouverts, j'ai tout de même vu que ton fichier paraissait un peu lourd (il est vrai que les images d'arrière plan font du poids, mais je n'ai pas creusé la chose...) Pas mal de feuilles (je n'ai pas regardé non plus dans le détail ! ), une flopée de Userforms, et également de nombreux Modules.

Pour les modules, il est clair qu'il y en a trop pour que cela puisse être justifié par la nature du code contenu.

Je serai moins affirmatif pour les Userforms, mais vu que plusieurs présentent de similitudes, je pense que le nombre pourrait être réduit.

Tu as mis un point d'interrogation sur mes remarques 3 et 4 ! Serait-ce que tu ne connais pas la fenêtre de propriétés ? C'est un élément essentiel lorsqu'on construit un Userform, c'est là qu'on définit les propriétés par défaut des contrôles, celles qu'ils doivent avoir à l'ouverture du Userform. Il est indispensable de la connaître et surtout de s'en servir !

C 'était la remarque 3, la 4 concernait l'utilisation de la propriété List de la ListBox pour l'alimenter, au lieu d'utiliser AddItem. Il faut la connaître et son usage est préférable dans la majorité des cas.

Dans ton cas, les valeurs à affecter proviennent d'une plage de cellule compacte, l'affectation de la plage (entendre des valeurs de la plage, qui sont ainsi affectées sous forme de tableau) à la propriété List de la ListBox (une ligne de code) paraît couler de source !

Cordialement.

Bonjour MFerrand

Vraiment désolé, J'ai pas pensé au fait que je modifiait aussi ton interface, j'aurai du au moins de prévenir. Vraiment désolé.

Pour répondre à ta remarque sur la page concernée, il s'agissait du listing coursier et du formulaire coursier.

Merci encore pour toutes tes remarques, je vais continuer à bosser le VBA.

Je sais que le fichier est un peu lourd, mais je suis parti le fichier préexistant d'un ami qui m'a demander si on pouvait l'améliorer. Je l'ai modifier en posant beaucoup de questions et en navigant sur internet.

La plus part des réponses je les ai trouver ici.

Encore désolé et merci.

A te relire.

Cordialement

Bonjour,

Pas de souci particulier, ça n'a pas fait de dégâts... mais dans l'histoire tu n'as pas eu de réponse circonstanciée.

Si tu as compris me indications, cela devrait te permettre de commencer à élargir tes possibilités de codage...

Bonne continuation.

Ouf cela me soulage quand même.

si tu veux je peux t'envoyer le fichier modifié.

si cela peu permettre d'améliorer l'appli.

Très cordialement

Tu peux toujours, mais je ne peux garantir que je regarderai tout (c'est copieux ! ) compte tenu de ma disponibilité en ce moment.

Cordialement.

Je te renvoi le fichier, qui va encore modifier ton environnement.

j'ai juste supprimer l'arrière plan. Il n'y a pas de mot de passe.

Regarde si tu as vraiment le temps. Rien ne presse.

Pour l'instant cela fonctionne et permet à mon collègue de faire les inscriptions tel quel.

merci beaucoup pour ta patience.

Très cordialement

https://www.cjoint.com/c/HFgmBL5Qabr

Bonjour,

Je verrai ça... Il ne modifiera pas mon environnement , je prends la précaution de désactiver ces fonctions avant de donner cours aux macros, il me reste aussi à voir les manips au niveau des Userforms pour vérifier qu'ils comportent une sortie normale (équivalant à une annulation)...

Mais je peux déjà te dire que la conception même du fichier, utilisant une grande quantité d'API, n'est guère conforme à ma philosophie d'utilisation d'Excel, mais je l'avais déjà exprimé...

Mais lorsqu'on bidouille un Userform pour substituer aux moyens normaux de sortie une sortie personnalisée qui ne fait rien de plus (bouton Quitter ne comportant qu'une commande : Unload Me !) je trouve là qu'on nage dans l'absurdité !

Plus important, l'ouverture des formulaires systématiquement en non modal ! Dans son utilisation normale : saisie, choix d'opérations... un Userform est destiné à faire en sorte que l'utilisateur passe par son intermédiaire et n'intervienne pas directement dans les feuilles, ce qui fiabilise les opérations, permet de contrôler leur validité, etc.

Qu'il soit modal (l'utilisateur ne peut rien faire d'autre tant que le Userform est ouvert) est donc la règle, et l'ouverture en non modal l'exception (quand on utilise un Userform à d'autres fins, afficher un message par exemple...).

Sinon, le code aura certainement d'être un peu optimisé... Cela me laisse toujours un peu rêveur de voir un fichier comportant des fonctions sophistiquées réclamant normalement la maîtrise d'éléments de programmation au-delà de VBA et dont le code VBA à côté est pour le moins médiocre !

Je t'en dirai plus lorsque j'aurai pu prendre le temps de l'examiner plus en détail...

Cordialement et bonne journée.

Bonsoir

C'est ce que l'on appelle se faire remettre à sa place.

Bon, on apprend tous les jours.

si cela peut permettre d'améliorer quelques connaissances tant mieux et merci à toi.

Amicalement.

A te relire

Quand je fais une critique de code, j'essaie d'aller droit au but... ce que je dis ne concerne que le code, objet de la discussion, et je pense qu'il convient de rester sur un plan technique pour essayer que ce soit le plus compréhensible possible. Et ce n'est pas un dogme, tout reste discutable, la discussion permet d'ailleurs souvent d'approfondir pour mieux maîtriser tel ou tel aspect...

Ce qui m'importe, c'est que la signification de ce que je peux dire soit effectivement comprise, et si au bout du compte cela te permet de coder plus efficacement, je considèrerai ne pas avoir perdu mon temps... que tu appliques ou non ce que je peux préconiser d'ailleurs .

Un petit délai pour que je poursuive, mes médecins ont prévu de quoi occuper ma journée de demain, et une partie de ma soirée pour les préparatifs...

@+

Pas de souci, c'était juste un trait d'humour, mais j’avais bien saisi le sens du message.

En générale j'essaye d'appliquer ce que l'on me conseille, mais parfois cela n'est pas toujours évident et facile.

J’espère sincèrement que tes ennuis de santé vont rapidement se résoudre et que tout rentrera rapidement en ordre

pour toi.

Bien Amicalement.

Rechercher des sujets similaires à "completer combobox partir listbox"