Boucle de combobox et textbox dépendantes

Hello le forum,

SVP je voudrais créer un algorithme qui m'affiche les prix et les informations liées à une réservation d'hôtel.

J'ai plutôt réussi à le faire, les informations et les prix associés s'affichent correctement lors de la première saisie d'informations. Mais le problème de ce fichier c'est que quand j'ai déjà saisie mes informations, et que j'essaies de les modifier sans relancer le formulaire, les données saisies ne s'actualisent pas et donc le userform m'affiche des prix erronés voir même m'envoie un message de débogage. (essayez de faire machine arrière et de changer de pays ou de ville après avoir tout saisie)

Ce que je voudrais c'est que même après avoir saisie mes informations, j'aimerais pouvoir modifier le pays ou la ville ou le standing et que les données de la boucle (Standing, nombre de personnes, prix...) s'actualisent ou au moins se réinitialisent sans devoir refaire la totalité du formulaire. J'ai essayé .Clear ou encore "" mais ca ne marche pas, si vous avez des propositions sur ce que je peux modifier n'hésitez pas.

Le fichier en pièces jointes contient la totalité du code utilisé + explication. Merci d'avance.

17test.xlsm (62.78 Ko)

Hello,

C'est ta gestion des évènements qui n'est pas bonne.

Quand tu modifies un pays et que dans ville tu n'as rien tout va bien, car ville = vide donc pas de changement sur ville.

En revanche, quand ville <> "" et que tu changes un pays, la première action que tu fais c'est un clear de ville, donc changement, donc tu rentres dans l'évènement change de ville ...

Mais ville = "" (avec ton clear) donc le if ne rentre jamais dans le then (évènement change de ville):

    If TV(I, 1) = Me.cboM.Value And TV(I, 2) = Me.cboMo.Value Then D(TV(I, 3)) = ""

A la fin de ta boucle donc dico est vide donc plante.

Salut Rag,

Merci pour ta réponse. J'ai compris où tu veux en venir mais j'ai pas compris ce que je peux modifier concrètement.

J'ai essayé d'intégrer le .Clear dans la boucle, mais ca plante toujours.

Bonjour,

On ne sait pas trop dans ton fichier si tu joues avec des véhicules, ou des réservations de vacances, mais...

Et si tu commençais par enlever les RowSource de tes cboM, cboP, cboD, cboD2? (vu que tu alimentes différemment...)
PS, RowSource n'est vraiment pas la façon optimale pour alimenter un Objet...
Peut-être?

Hello cousinhub,

Effectivement j'ai repris un fichier que j'avais utilisé pour des véhicules dans cette étude de cas. Les combobox sont alimentés par le tableau dans la feuille "Liste", j'ai enlevé les rowsource mais j'ai toujours le même problème.

Bonjour

Une proposition :

7test-yal-v1.xlsm (46.58 Ko)

Hello yal,

T'as solution correspond exactement à ce que j'attends, merci beaucoup.

Par contre j'ai besoin de corriger 2 choses si possible. T'as solution intègre des cases vides qui s'affichent dans la combobox.

Puis comment pourrais-je intégrer les prix dans la boucle ? De manière à réinitialiser les textbox des prix également pour éviter que les prix s'affichent même quand les combobox villes et standing sont vides.

J'ai essayé d'ajouter txtE et txtX.Clear mais ca plante.

Voila qui devrait faire l'affaire

4test-yal-v2.xlsm (50.90 Ko)

J'ai essayé d'ajouter txtE et txtX.Clear mais ca plante.

Normal, .Clear c'est bon pour les combobox (quoique...) mais pour les textbox ça serait plutôt txtX = ""

Hello yal,

Ca marche parfaitement, merci beaucoup !

Par contre j'ai juste une petite question par curiosité, c'est quoi la différence entre cboM.ListIndex = -1 et cboM.ListIndex = cboM.ListCount - 1 ?

cboM.ListCount c'est le nombre d'items dans cboM. Puisque le premier indice = 0 cboM.ListIndex = cboM.ListCount - 1 affiche la valeur de la dernière ligne de cboM
alors que cboM.ListIndex = -1 affiche la valeur d'indice -1 c'est à dire rien

C'est compris, merci beaucoup yal !

Rechercher des sujets similaires à "boucle combobox textbox dependantes"