Combox cascade et dynamique

Quoi de mieux pour commencer l'année que

Belle Année 2017 à tous !

J'ai une question de VBA, pour commencer l'année et améliorer une application.

J'ai un ou une je sais jamais userform dans laquelle j'ai deux combobox en cascade. J'aimerai savoir comment procéder pour faire fonctionner celles-ci sans passer par la nomination de plage.

J'aimerai quelles soient dynamiques, de sorte que si j'ajoute des listes ou que je les complète, la mise à jour suive sans avoir à refaire tout le code.

J'ai mis un fichier, dans lequel j'ai fait la manip avec des formules dans des listes. J'aimerai avoir le même résultat en VBA.

Merci pour votre sollicitude

Leakim

22reservation.xlsm (255.71 Ko)

Bonsoir leakim,

Bonne année 2017!

Voici! Quelques conditions (ce serait trop beau! ) :

  • placer les titres de tes listes en 1ère ligne de ta feuille DONNEES (tu peux, par contre, les positionner où tu veux sur cette ligne) ;
  • garder 'Type' comme titre de ta liste Type.

Il y a encore moyen d'éviter cette liste Type et donc te permettre de zapper l'étape mise à jour de cette liste (et donc d'éviter un oubli) en calculant directement le nombre de meetings placés en 1ère ligne (tu suis?)... A titre personnel, je conseille!

Pour le reste, tu peux ajouter (pour autant que tu mettes à jour ta liste TYPE) autant de listes supplémentaires que tu le souhaites et compléter celles-ci d'autant d'items que tu veux!

Avec plaisir!

A+

Finalement, j'ai zappé ta liste TYPE et fait comme je te l'expliquais plus haut! Plus facile, plus rapide, pas d'erreurs! 8)

A+

29reservation.xlsm (245.26 Ko)

Salut Curulis87,

Merci de m'accompagner ! Ta proposition me plait beaucoup !

curulis57 a écrit :

Il y a encore moyen d'éviter cette liste Type et donc te permettre de zapper l'étape mise à jour de cette liste (et donc d'éviter un oubli) en calculant directement le nombre de meetings placés en 1ère ligne (tu suis?)... A titre personnel, je conseille!

Oui, je suis parfaitement, je le fais d’ailleurs le plus souvent en formule decaler mais là en VBA je sèche vraiment ?? Alors j'avais fait au plus simple selon moi.

J'adore ce forum pour çà! On y apprend tout les jours.

J’adore aussi ton initiative de le faire de suite.

La mise en page que j'avais faite n'étais pas par hasard. Elle correspond à la mise en page de mon fichier final. Je l'avais pas précisé, je te l'accorde.

Ma question est, si je suis bien ton code

iCol = .Range("A1:AAA1").Find(what:=sFlag, LookAt:=xlWhole, SearchDirection:=xlNext).Column

Il suffit de changer A1 par J1 ?

J'ai une deuxième question. J'aimerai pouvoir proposer de faire évoluer les listes depuis l'userform afin ajouter des listes ou en retirer et surtout des manager les items des listes.

Jusqu’à présent j'ai opter par un champs combobox "ouvert", avec la propriété Style ---> fmStyleDropDownCombo

Cela fonctionne bien sauf qu'il n'y a besoin de saisir à nouveau cette valeur qui n'est pas dans la liste. J'ai aussi le cas de valeur qui devienne obsolète et que l'on utilise plus.

Je sais si c'est clair?

Est ce que tu as une idée de la démarche?

Cordialement,

Leakim

Bonsoir Leakim,

si je te suis bien, tu veux pouvoir utiliser les mêmes ComboBox pour engager une action de réservation ET, occasionnellement, pour modifier ou supprimer ou ajouter un item d'une liste quelconque voire supprimer ou créer une nouvelle liste?!

C'est le rôle des boutons déjà installés : Supprimer, Répéter, Modifier?

Faudra changer cela à ma sauce si tu veux bien!

'Répéter' : faudra quand même que tu m'expliques ce que tu entends par là!

A te lire,

A+

Re,

curulis57 a écrit :

tu veux pouvoir utiliser les mêmes ComboBox pour engager une action de réservation ET, occasionnellement, pour modifier ou supprimer ou ajouter un item d'une liste quelconque voire supprimer ou créer une nouvelle liste?!

Oui c'est exactement cela !

Pour ce qui est de faire à ta sauce ? Ta sauce sera la mienne !

Tu me proposes de l'aide, je ne vais pas en plus te dire comment faire

Pour ce qui est des boutons ? Non, ils n'ont rien avoir là dedans. Ce sont des boutons qui servent pour les réservations. Je ne sais si tu dois en ajouter ou pas? Je te laisse faire.

Comme une image vaut mille mots, je me demande combien de mots faut une application?

Tu trouveras l'application sur le forum https://www.excel-pratique.com/fr/telechargements/plannings/planning-de-reservation-no108.php

Merci encore,

Leakim

Bonjour Leakim,

j'ai une bizarrerie : entre autres, les fonctions Date, Right et Left sont refusées là où d'autres fichiers fonctionnent sans souci??

Tu as jeté un sort?

Ça avance bien! La suite ce soir, probablement!

A+

Salut,

Il est 16:21 sur le forum et c'est le matin à Minneapolis, alors Bonjour !

C'est vrai que j'ai eu des soucis avec Date notamment et parfois Format

Je dois te raconter l'histoire du ficher.

Intervenant dans une association où l'on à peu de moyen, je me suis "autodidacté" à excel et je me suis intéressé aux outils de planning et autre calendrier, afin d'adapter des solutions à nos besoins. En 2013, peut après mettre inscrit sur le forum, je me suis mis à aider sur quelques sujets et notamment la question des MFC. rdi2:

J'ai donc participé à la résolution d'un souci de MFC dans un fichier planning qui avait été posté par un autre membre. Il me semble que ce fichier été lui-même issu d'une base de fichier téléchargeable sur une plateforme microsoft. Donc tu l'auras compris, je ne suis pas l'auteur initiale du fichier.

J'avais pas les compétences ni la logique pour "monter" de toutes pièces, ce type de fichier.

Par la suite, je me suis attribué le fichier et je l'ai fait évolué pour qu'il correspond à nos besoins de réservation de salles de réunions et une autre version pour les véhicules. Il y a d'ailleurs d'autres membres du forum, qui m'ont demandé de l'aide pour adapter le fichier à leurs besoins. C'est l'idée du partage que j'apprécie sur ce forum.

Voilà l'histoire du fichier, alors si il est ensorcelé tu m'en vois désolé J'ai pas eut l'idée que cela pouvait venir du fichier, je pensais que cela dépendait du PC sur lequel j'intervenais et qu'il manquait un module excel...

Aujourd'hui il en est autrement, je pense avoir le bagage pour repartir du début. En plus, je suis en année sabbatique autour du monde, alors j'ai un peu de temps!

Si tu le veux bien, tu peux repartir d'un fichier issu de ton PC tout beau tout neuf sur lequel les fonctions fonctionnent !

Cordialement,

Leakim

Bonjour Leakim,

voilà ton fichier!

Comme tu le souhaitais, tu peux, à partir des ComboBox, ajouter, supprimer ou modifier les items : soit les listes, soit les éléments des listes.

Tu verras un petit bouton de commande gris sous les ComboBox.

  • gris=pas d'action programmée ;
  • clic et 2 optionbuttons apparaissent ;
  • choisir une des 2 options pour agir sur les listes TYPE ou MEETING (c'est le nom que tu leur as donné) ;
  • re-clic sur le bouton pour choisir l'action : vert=ajouter, rouge=supprimer, orange=modifier ;
  • pour supprimer un élément, il suffit de cliquer directement dessus (message d'avertissement) ;
Attention : si l'item est déjà sélectionné, il ne se passera rien
  • pour modifier, sélectionner l'item et le modifier dans la fenêtre texte ;
  • pour ajouter, idem, écrire directement dans la fenêtre texte de la ComboBox sélectionnée ;
  • pour signaler au code que l'ajout ou la modification est prête à être validé, taper le signe + en fin de mot.s

Comme j'imagine que quelque chose doit se passer lorsqu'on choisit un item dans la liste MEETING, le code de ton programme correspondant doit être placé dans ComboBox_Meeting_Click à l'endroit où tu trouveras ceci :

'////////////////////////////////

'/// PLACER ICI LE CODE ///

'////////////////////////////////

Je n'ai sûrement pas testé toutes les combinaisons possibles des bêtises qu'un utilisateur peut faire avec cet outil!

Tu t'en chargeras bien, hein?

Si il y a une modif' à apporter, tu sais où appeler!

Avec plaisir!

A+

26reservation.xlsm (254.66 Ko)

Salut,

Superbe boulot ! Merci beaucoup pour le temps que tu y as consacré.

J'ai fait le test de l'utilisateur "alpha" c'est à dire moi

C'est très simple à utilisé ! c'est vraiment super. J'ai transposé le tout dans le fichier d'origine et pour les tests

curulis57 a écrit :

Je n'ai sûrement pas testé toutes les combinaisons possibles des bêtises qu'un utilisateur peut faire avec cet outil!

Tu t'en chargeras bien, hein?

J'ai mieux que de m'en charger. Depuis, presque 3 ans, je sais que mes tests n'ont rien à voir avec les tests d'utilisateur "naïf". Alors j'ai envoyé à une amie secrétaire qui utilise le fichier, et qui n'y connait rien VBA

Je lui est transférer ton mail pour les commentaires d'utilisation.

Maintenant, j'attends ses commentaires. Je te ferai suivre.

Attendons, maintenant.

Est ce que tu peux remettre ton mail sur le post du forum ? Afin de partager ton travail au plus grand nombre.

Merci encore.

Leakim

Salut Curulis57,

J'ai des nouvelles.

Ta proposition semble trop "complexe". Le fait d'avoir un seul et même bouton, n'est pas très lisible... pour un utilisateur "naïf"

L'idée est de faire avec des boutons différents pour chaque actions. Et surtout un bouton Edit ou Add plutôt qu'un "+" en fin de saisie. Perso je fais garder ton code car je trouve cela plus rapide et plus malin mais là, l'idée est d'être le plus facile à utiliser pour le plus grand nombre.

Il semble que les utilisateurs soient bien conditionnés à un bouton/une action.

Nous allons partir sur un userform de paramétrage, qui rassemble l'ensemble des données adaptables et abandonner l'idée de la faire directement sur l'userform de réservation.

J'ai remis les combobox des types de réunions, pour garder la même présentation que l'userform d'utilisation.

Tu verras, j'ai mis des icones dans les boutons pour être encore plus explicite... enfin j'espère Je pense qu'il faut garder le label commentaire pour accompagner l'utilisateur.

Il serait souhaitable de mettre une listbox dans laquelle on puisse visualiser le contenu de la combobox active.

Pour être plus clair, avec l'action des boutons options. On affiche le contenu de la combobox type avec option1 et le contenu de la combobox metting avec option2.

J'ai mis un bouton setting. Lorsque l'on clique dessus les boutons options, edit, add et trash apparaissent.

Puis on garde, le fonctionnement du code, avec le choix de la combobox par option 1 ou 2, puis on clique selon l'action edit, add ou trash.

Voici le visuel de l'userform.

capturesteing

Avec tous mes remerciements,

Leakim

Salut Leakim,

trop complexe, mon petit bouton mignon?

Qu'auraient-ils fait avec ceci ? Un annuaire sans bouton !

Fonctionnement :

  • taper directement un mot cherche les services correspondants avec leurs membres ;
  • taper un ESPACE puis un mot cherche une personne correspondante dans tous les services.
Le fait de taper un ESPACE en première position colore la Textbox de gris, indiquant la saisie d'une personne!

Là où ça devient bien !

  • taper ++ puis un mot et terminer par + crée un nouveau service ;
  • taper -- puis un mot et terminer par - supprime le service sélectionné (attention s'il y a des personnes dedans car elles seront éliminées) ;

Là où ça devient super ! En deux étapes consécutives !

- taper < ou + puis un mot et terminer par < ou + sélectionne le service dans lequel tu vas déplacer une personne ou ajouter une nouvelle personne ;

Automatiquement, l'affichage t'indique ce que tu dois faire :

  • " <" : taper le nom à déplacer et terminer par < --> demande de confirmation du déplacement.
  • " +1": le curseur est placé après le + : taper le nom du nouveau et terminer par + (avant le 1 qui ne doit pas disparaître!) affiche le nom dans la ListBox et prépare la saisie n°2 (téléphone) ;
  • " +2" : terminer par + pour le téléphone ;
  • " +3" : terminer par + pour le poste intérieur ;
  • demande de confirmation !

- taper " -" recherche une personne pour l'éliminer de l'annuaire : terminer par - et demande de confirmation.

De mieux en mieux !

- taper un ESPACE puis le nom d'une personne et terminer par * indique que tu veux modifier les coordonnées de cette personne :

L'affichage s'adapte et t'indique ce que tu dois faire :

  • " *UNTEL1" t'affiche d'abord le nom déjà sélectionné. Soit tu tapes directement pour corriger, soit tu places le curseur là où tu le désires soit tu pousses sur FLECHE DROITE et, en éteignant ainsi la sélection, tu es directement à gauche du 1 où tu tapes * pour valider et passer au n° 2, le téléphone ;
  • " *0900000002", même principe ;
  • " *0003" pour le poste interne, même principe. Terminer par *.

En tout état de cause, je laisserai mon petit bouton! Non, mais!

Je commence ton fichier dès que j'ai l'inspiration pour me passer de mon petit bouton mignon!

A+

14annuaire.xlsm (51.12 Ko)

Salut,

J'adore ton fichier ! Je vais me le garder sous le coude si tu permets

Pour le projet, j'ai confiance dans ton imagination

D'avance,

Leakim

Salut Curulis57,

J'espère que tu vas bien?

Je suis resté avec ce que tu m'as dit :

curulis57 a écrit :

Je commence ton fichier dès que j'ai l'inspiration pour me passer de mon petit bouton mignon! A+

Est ce que tu as une inspiration

Est ce que je dois solliciter à nouveau le forum ?

Tu me redis.

En tout état de cause, je te remercie encore pour ton implication et de tes propositions très inspirées

Leakim

Salut Leakim,

tu as précédé mes intentions! Je fais ça ce WE!

Impatient, va!

A+

Salut,

Je te souhaite un bon week-end alors

Leakim

Bonjour Leakim,

pas loin d'être terminé mais les interactions entre les différents Command ou Option buttons qui, forcément, agissent sur l'affichage me donnent du fil à retordre!

Encore un peu de patience pour que je bétonne tout ça! 8)

A+

Salut Curulis57,

Je patiente

Merci du temps que tu consacres à mon projet.

Leakim

Salut Leakim,

en attendant d'avoir réglé tous les petits mystères, je t'envoie la version en l'état.

A force de regarder, je ne sais où mettre les yeux!

Il y a encore un petit manquement d'affichage mais l'essentiel y est!

Demande à tes demoiselles d'essayer et de faire une liste de doléances! 8)

Donc, pour agir, il faut sélectionner d'abord une liste-type et/ou un item dans une liste-meeting.

Après ce premier choix, cliquer le bouton 'Edit' ou 'Trash' ou 'Add', ce qui allume le bouton en rouge. Faire les transformations voulues et re-cliquer le bouton rouge valide l'action, renvoyant tous les boutons.

A vous de jouer!

A+

Salut Curulis57,

C'est vraiment super

Je ne vois pas de quels mystères tu parles ? L'état actuel ressemble à l'attendue

Je vais questionner mes fidèles assistantes

Et je te redis.

Merci encore,

Leakim

Salut Curulis57,

Je valide ta proposition.

C'est vraiment super.

Je me suis occupé des affichages et des commentaires.

Je te remercie pour ta mobilisation et le temps que tu m'as consacré.

Cordialement,

Leakim

Rechercher des sujets similaires à "combox cascade dynamique"