Module de Classe Combobox Recherche Intuitive

Bonjour à tous,

J'essaie de comprendre comment fonctionne un module de classe pour l'adapter.

image

Voila le nombre de combobox actuelle, pour eviter un travail de titan, j'ai compris que je n'avais pas d'autres choix que de passer par un module de classe.

J'ai déjà le code de base pour la recherche intuitive mais je ne sais pas comment l'adapter réellement :

Private Sub RechercheBox_Change()
  Set d1 = CreateObject("Scripting.Dictionary")
  tmp = UCase(Me.RechercheBox) & "*"
  For Each c In a
    If UCase(c) Like tmp Then d1(c) = ""
  Next c
  Me.RechercheBox.List = d1.keys
  Me.RechercheBox.DropDown
End sub
Private Sub Userform_Initialize()

  Set f = Sheets("BDD AGENT")
  a = f.Range("B2:B" & f.[B65000].End(xlUp).Row).Value
  Me.RechercheBox.List = a

End sub

Donc a l'initialisation de l'usf, la box se charge avec la liste de la "BDD AGENT", rien de compliqué pour une combobox mais une centaine je ne comprend pas comment fonctionne le module de classe.

Merci d'avance pour votre aide !

Bonjour Starnain,

Perso je dirai mauvaise voie vouloir faire un module de classe avec des centaines de combobox... oulala

En plus du fait que je ne vois absolument pas l'intérêt, je ne vois pas pourquoi vous en vous servez pas d'Excel tout simplement
La validation de donnée existe, et si vous voulez une recherche intuitive, 1 UsF avec 1 combobox

A+

Bonsoir,

C'est une gestion de planning avec sectorisation.

Je veux juste comprendre comment faire une module de classe pour plusieurs combobox.

On recherche l'agent sur la BDD via chaque combobox. Si l'agent est de tel fonction, changement de couleur, et plusieurs fonction.

Le fichier Excel tel que vous me le décrivez est déjà créé.

Je vous joins le fichier, sur la feuille "Planning Hebdo" et testez. Ca marche bien, mais je ne suis pas le seul sur le fichier a travailler dessus donc je l'améliore. Bien que j'ai l'impression que vous pensiez le contraire.

15gestionagents.zip (430.60 Ko)

Bonjour,

Un module de classe est parfaitement inutile car vous n'avez par feuille planning, qu'une seule Combobox qui apparait selon la sélection que vous faites.

Il vous suffit d'écrire une seule procédure de recherche intuitive que vous appellerez à partir de vos feuilles Planning. Pour cela, vous affecterez à votre procédure un paramètre permettant de lui passer l'objet Combobox de la feuille.

Bonjour,

Mais ce n'est pas ce fichier. C'était pour montrer ce que j'avais fait avant. La maintenant j'ai un USF avec 200 combobox et je pense que le module de classe a toute son importance.

Je n'arrive pas à comprendre comment créer un module de classe avec le code.

J'ai initier la liste pour chaque combobox par une boucle.

Mais je ne sais pas comment faire pour 200 combobox.

Merci pour votre aide.

Je fournirais le fichier actuel ce soir avec un usf mais je me doute que pour 4 cbo ou 200 ça reste la même chose donc je demandais juste à savoir comment procéder pour créer un module de classe avec ce code.

Private Sub RechercheBox_Change()
  Set d1 = CreateObject("Scripting.Dictionary")
  tmp = UCase(Me.RechercheBox) & "*"
  For Each c In a
    If UCase(c) Like tmp Then d1(c) = ""
  Next c
  Me.RechercheBox.List = d1.keys
  Me.RechercheBox.DropDown
End sub

Bonne journée.

Bonjour,

ci-joint exemple de l'utilisation d'un module de classe Combobox avec la propriété "List" et l'action "Dropdown" à partir d'un UserForm contenant 2 combobox

Bonsoir,

Merci pour cette aide, bien que je ne comprenne pas comment l'adapter, je vais essayer :)

J'avais essayer d'adapter un code je vous joins le fichier :

Merci pour votre aide.

Bonjour,

ci_jointe adaptation avec

1- renommage du tableau structuré de la BDD en "BDD_agents"

2- ajout du prénom dans les combobox

Merci à vous,

Plus qu'à essayer de comprendre, merci pour les annotations.

Il y a un bug quand celui-ci ne rentre pas dans la recherche.

cbx_agent.List = Application.Transpose(Application.Transpose(dic_agents.items))

"Erreur Type 13"

Merci encore !

ci_jointe correction

Merci bien.

J'ai enlever le ".clear" qui faisait bug encore la combobox.

Une dernière question : pour l'évent "exit" comment l'instancier ?

Une explication me suffit juste que je comprenne comment l'adapter :)

Merci encore.

J'ai enlever le ".clear" qui faisait bug encore la combobox.

Pas de bug car j'ai rajouté cette action dans la classe.

Une dernière question : pour l'évent "exit" comment l'instancier ?
On ne peut pas car cet événement n'est pas disponible dans le module de classe.

Pour mémo

Une classe personnalisée est un module où l'on définit des événements (Public Event), des actions(Sub), des propriétés en lecture (Property Get), des propriétés en écriture (Property Let ou Set pour un objet)

Pour utiliser la classe, il faut créer pour chacun de ses éléments une instance (c.a.d. le stockage en mémoire des caractéristiques de la classe pour l'élément considéré). Le lien permettant d'accéder à l'instance doit aussi être stocké en mémoire. Ce lien peut être stocké dans un tableau, dans une collection, au niveau Public ou module. Il peut aussi être stocké dans l'instance elle-même.

Rechercher des sujets similaires à "module classe combobox recherche intuitive"