Userform de recherches - critères liés

  • Initiateur de la discussion Initiateur de la discussion Barbefeuillue
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Re : Userform de recherches - critères liés

Bonsoir et merci!

je suis en train de regarder si je peux adapter tout ça à mon classeur,

mais c'est peut être d'un niveau trop élevé pour mes humbles "compétences" ...
 
Re : Userform de recherches - critères liés

Bonsoir.
Non, non. Parce qu'il n'y aura rien à adapter dans les modules de service. Où si ça devait être le cas, je m'en occuperai.
Pour des besoins courants ça se programme facilement dans les userform.
Il n'y a qu'à déclarer en tête du module de l'userform un objet de type ComboBoxCasc ou ComboBoxLiés avec évènements.
Dès lors il figure dans la liste de gauche qui surmonte la fenêtre de code, et dans celle de droite les modèles de procédures à implanter qui gèrent les évènements qu'il décrète.
Dans l'Userform_Initialize un Set New à l'objet pour lui allouer ses ressources, .Plage pour lui indiquer la plage couvrant le tableau, une série de Add Me.ComboBoxX, colonne dans cette plage, enfin un .Actualiser et ça marche tout seul.
 
Re : Userform de recherches - critères liés

Je ne vois dans votre userform Formulaire_Consultation aucun ComboBox (liste déroulante modifiable) et aucune tentative de faire jouer mes modules de service avec.
De plus vos contrôles portent des noms qui ne semblent avoir aucun rapport avec leurs rôles. Auriez vous pris tout ça d'un userform complètement étrangers à l'affaire ?
Comme vous exposez le problème, en dernier, remplacez les ListBox pour le numéro de compte et le numéro de chèque par des ComboBox, et essayez de mettre en œuvre un ComboBoxCasc
À +
 
Dernière édition:
Re : Userform de recherches - critères liés

c'est effectivement volontaire car tout "plante" quand j'ai essayé de modifier mon userform avec les combobox, je vais le poster en pièce jointe le temps que je supprime quelques données
 
Re : Userform de recherches - critères liés

Il manque le module spécialisé MDictionnArbo (utilisé par ComboBoxCasc) le module de classe TableIndex (utilisé par MDictionnArbo) et la référence "Microsoft Scripting Runtime" pour la définition du type Dictionary.
Et aussi le module Utilit si vous tenez à utiliser PlgUti pour CC.Plage, mais on peut s'en passer…
Avec ce module c'est:
VB:
CC.Plage PlgUti(Feuil3.[A2])
Sans, c'est:
VB:
CC.Plage Feuil3.Rows(2).Resize(Feuil3.[A65536].End(xlUp).Row - 1)
Voulez vous essayer de continuer un peu après avoir ajouté ces fournitures ?
Ne faite pas de boucles: faite une ligne CC.Add Me.ComboBox etc pour chacun de vos ComboBox.
Vous n'avez pas besoin d'un début aussi compliqué: là c'était pour quelqu'un qui voulait en plus un choix "Toutes" pour le 1er ComboBox. Dans votre cas un simple CC.Actualiser suffira.

Remarque: D'après la façon dont vous expliquez le problème au début ce serait plutôt un ComboBoxLiés qu'il vous faudrait.

Je joins un début avec ComboBoxLiés pour que vous puissiez voir que ce n'est pas si compliqué. J'ai renommé tous les contrôles avec un préfixe de 3 lettre suivi de mnémonique.
 

Pièces jointes

Dernière édition:
Re : Userform de recherches - critères liés

L'inconvénient du Unload c'est qu'il efface non seulement tous les contrôles mais carrément l'userform de la mémoire, et entraine donc une nouvelle exécution du Userform_Initialize au prochain Show, d'où recalculs de tous les Dictionary. C'est rapide d'accord, mais pas instantané. Me.Hide devrait les préserver. Un équivalent au Userform_Initialize qui s'exécute au Show même si l'Uf est encore en mémoire: Userform_Activate. À Essayer: y mettre CL.Nettoyer, qui devrait entrainer s'il y a lieu Défait, où on y réinitialise tous les contrôles.
C'est bien, vous avez compris pas mal de choses. Mais il pourrait être préférable d'enregistrer:
VB:
CL.PlgTablo.Cells(LaLigne, "D").Value = CDate(Me.TbxDatRéc.Text)
Ça peut préférer planter plutôt que d'enregistrer un texte qui n'a rien à voir avec une date valide. Prévoir donc On Error Resume Next devant, le tester derrière If Err Then Exit Sub pour ne pas effectuer le Hide.
Ou mieux: vérifier la convertibilité en Date à l'Exit du TbxDatRéc et rendre le bouton Btn.Confirmer.Enabled = False s'il y a problème.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
13
Affichages
337
Réponses
10
Affichages
172
Réponses
4
Affichages
265
Réponses
5
Affichages
158
Réponses
5
Affichages
139
Réponses
2
Affichages
187
Réponses
2
Affichages
419
Retour