bug DicCBx du modules de classes de DRANREB

grisan29

XLDnaute Accro
Bonjour a tous et toutes et a Dranreb

depuis quelques jours j'ai un bug qui s'est créer au niveau de mon classeur client a base des cbxliées de l’excellent Dranreb
c'est une erreur de compilation erreur non définie et l'action F8 ramène au même panneau a chaque fois
 

Fichiers joints

Dranreb

XLDnaute Barbatruc
Bonjour.
Cette erreur se produit toujours en déclarant une variable As Dictionary, si la référence Mcrosoft Scripting Runtime n'est pas cochée.
Remarque c'est du très vieux code. Le nouveau gestionnaire de ComboBox liées n'est plus basé sur les Dictionary, mais sur ce que j'appelle des sujets. Ce sont de simples Variant contenant un Array à deux éléments :
Élément 0: Un tableau base 0 de valeurs de clés destiné en principe à la propriété List d'une ComboBox.
Élément 1: Un tableau base 0 de Variant dont chaque élément est une liste (Base To n) As Long de numéros des lignes portant toutes la valeur de clé correspondante.

Edit: Je le propose depuis peu seulement dans un classeur précurseur pourvu d'une procédure d'installation en tant que Complément Excel. La référence CBxL de son projet est à cocher ensuite dans les projets des classeurs utilisateurs.
 

Fichiers joints

Dernière édition:

grisan29

XLDnaute Accro
bonjour Dranreb
merci de ta réponse, en effet la référence Microsoft Scripting Runtime est décochée surement du a la mise a jour mais j'en doute
autrement aurais tu un exemple concret de ces nouveaux codes
j'ai créer l'enregistrement demandé mais le vba est codé donc pas accès
Pascal
 

Dranreb

XLDnaute Barbatruc
Je n'ai pas d'exemple récent, mais ça se commande comme l'ancien ComboBoxLiés (sans le e du féminin, adopté depuis, vu que c'est une boîte combo)
Il y a diverses possibilités en plus, notamment, si la plage source a fait l'objet d'une mise sous forme de tableau, celui ci est détecté et ça ouvre la possibilité d'utiliser sa propriété ListRows au travers d'une propriété Lignes de l'objet. Tout est expliqué dans la feuille Aide CBxL.
Si on l'utilise en référence, on ne peux pas employer l'expression New ComboBoxLiées pour le créer, il faut utiliser sa fonction ComboBoxLiées qui renvoie un nouvel exemplaire de cet objet. Je recommande, pour documenter le code, de préciser
Set CL = CBxL.Création.ComboBoxLiées
 

Dranreb

XLDnaute Barbatruc
Oui, pour ne plus se tromper de version si on a plusieurs application qui l'utilisent, je recommande de l'utiliser via la référence CBxL cochée, et non plus d'implanter les modules dans le classeur d'application. Si on a absolument besoin de le faire, voir commande CBxL.xlam!ExportModules tout à la fin dans cette documentation.
Il n'y a plus aucun commentaire guide d'utilisation dans le code. De toute façon les gens ne les lisaient pas. Et comme l'étude du fonctionnement du code ne sert à rien pour comprendre comment l'utiliser, je l'ai rendu inaccessible.
 

Discussions similaires


Haut Bas