Utiliser un module de classe déclaré dans un .xlsm

Le
Stéphane Santon
Bonjour,

Mon dernier programme VBA était sous Excel 2003 ! Ici un petit projet
ponctuel

Je désire exporter des fragments de feuilles au format JSON.
J'ai trouvé cette bibiliothèque intéressante :
http://ramblings.mcpher.com/Home/excelquirks/classeslink/data-manipulation-classes/data-abstraction

C'est un fichier .xlsm . Dans la macro de mon classeur, je déclare :

Dim goSets As cDataSets

mais il me répond à l'exec : "Type défini par l'utilisateur non
défini".

Comment déclarer l'usage de cette librairie externe ?

Merci

--
Stéphane

Jeune Chambre Economique de Saintes *** http://www.jce-saintes.org
Agitateurs d'idées accélérateurs de talents !

BTS Electrotechnique *** http://enselec.santonum.eu
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #25609352
Bonjour,

Le fichier que j'ai récupéré est rempli de module de classe
et de module standard. Comme le code semble imbriquer
d'un module à l'autre, je vais répondre simplement à ta
question à savoir comment déclarer la variable pour pouvoir
l'utiliser.

Dans un module standard, écris cette petite procédure.
L'expression "New" est très importante, car c'est lui qui
cré l'instance de l'objet "cDataSets". Évidemment dans la
liste des modules de classe tu vois ce dernier "cDataSets"
mais quand tu fais la déclaration du module, c'est l'objet
"CdataSets" que tu créées.
À cet égard, les procédures "Get()" ou "Let()" font référence
à une propriété de l'objet "cDataSets". Lorsqu'il s'agit d'un
objet on utilise "Set" pour définir l'objet.

Quand tu écris une procédure dans un module de classe, tu
écris en fait la "méthode" (une action) qui est associée à l'objet
que tu as créé.

Pour accéder à ces "Propriétés" ou "Méthodes" de l'objet "cDataSets"
il s'agit de taper un point immédiatement après la variable objet
que tu as utilisée.

Si tu n'es pas trop familier avec les modules de classe, tu risques de
trouver
très ardu de faire une réplique de ces modules...Tu as plusieurs heures de
travail devant toi si ce n'est des jours de plaisir...!

N.B. Ce n'est pas une librairie (bibliothèque), mais un module de classe.

'------------------------------------------
Sub test()
Dim Md As New cDataSets
Md.create "Michd"
Md.init Range("A1:A10"), True
End Sub
'------------------------------------------


MichD
---------------------------------------------------------------
Publicité
Poster une réponse
Anonyme