• Initiateur de la discussion Initiateur de la discussion Mxr17
  • 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 !

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

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é.
 
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

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.
 
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

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:
- 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

Discussions similaires

Réponses
18
Affichages
702
Réponses
12
Affichages
466
Retour