Module de classe

Mxr17

XLDnaute Nouveau
Bonjour à tous,

Je me suis mis depuis quelque temps sur les modules de classes, à force de lire et tester que commence à comprendre quelques bricoles mais je sèche vraiment pour utiliser un objet à partir d'un autre objet.
Exemple un objet Client (nom, prenom, adresse etc...), un objet Tableau (n° de facture, articles, ....., nom du client).
Comment "exploiter" l'adresse de l'objet Client à partir du nom de client de l'objet Tableau ?

Ca peut bien sur se faire sans module de classe, c'est pour comprendre.

Merci

Cordialement
 

Pièces jointes

  • Exemple.xlsm
    18.2 KB · Affichages: 33

Dranreb

XLDnaute Barbatruc
Bonjour.
Pour exploiter l'adresse d'un exemplaire d'objet, où que ce soit, il faut disposer d'une variable de ce type d'objet.
Une variable objet n'est précisément rien d'autre qu'un pointeur vers un exemplaire de ce type d'objet, c'est à dire une variable faite pour contenir l'adresse de l'un d'eux.
Cela dit pour le retrouver plus facilement dans une collection, il serait judicieux lors du Add de préciser son nom comme clé.
 

Mxr17

XLDnaute Nouveau
Bonsoir et bonnes fêtes à tous,

Dranreb,

Merci pour votre réponse, j'ai continué à lire et essayer de tester mais ça reste confus.

- ".. Pour exploiter l'adresse d'un exemplaire d'objet, où que ce soit, il faut disposer d'une variable de ce type d'objet..."
J'ai créé un exemplaire/ variable de l'objet, mais comment le lier ensuite aux objets ?

-".. Cela dit pour le retrouver plus facilement dans une collection, il serait judicieux lors du Add de préciser son nom comme clé."

J'ai ajouté le nom comme clé (je n'ai pas trouvé comment tester, il semble que cela ne soit pas possible), mais je n'en saisi pour le moment pâs vraiment l'utilité future.

J'ai remplacé la classe Tableau par une classe Facture pour essayer de simplifier cet exemple au maximum dans mon esprit. Si vous avez un moment pour regarder (?).

Merci
Cordialement.
 

Pièces jointes

  • Exemple (2).xlsm
    61.1 KB · Affichages: 26

Dranreb

XLDnaute Barbatruc
Bonsoir.
Très bien pour le nom mis comme clé.
Maintenant ça manque un peu de variables globales tout ça.
Par exemple dans Module1 vous avez des collections qui ne seront conservées que durant l'exécution des procédures parce que ce sont des variables locales à l'intérieur de celles ci au lieu d'être déclarées Public ou Private en tête du module.
 

Mxr17

XLDnaute Nouveau
Bonsoir Dranreb et merci,

J'arrive à récupérer la propriété Ville correspondant à la Facture, mais en passant par l'objet Contact. Je n'arrive pas a le faire via l'objet Facture, l'espion montre qu'il n'y a aucune valeur (si j'ai compris c'est vide parce que je ne pointe pas vers l'adresse de l'objet Contact correspondant). Mais la je sèche un peu.

Cordialement
 

Pièces jointes

  • Exemple (2) (1).xlsm
    61.8 KB · Affichages: 27

Dranreb

XLDnaute Barbatruc
C'est que je ne comprends pas trop ce que vous voulez faire en fait.
Mais vous ne devez pas garder les déclarations de Contacts et Factures dans la procédure TestDeux par exemple car elles y prédominent, en tant que variables locales, donc volatiles, sur leurs équivalents globaux, lesquels ne seront donc pas mis à jour.

Edit: Au lieu de Facture.Name = Worksheets(2).Cells(I, 3)
Il me paraitrait assez logique de faire :
Set Facture.Contact = Contacts.Item(Worksheets(2).Cells(I, 3).Value)
Mais bon… à voir.
 
Dernière édition:

Discussions similaires

Réponses
29
Affichages
1 K
Réponses
3
Affichages
337

Statistiques des forums

Discussions
312 913
Messages
2 093 534
Membres
105 750
dernier inscrit
fred13340