Utilisation d'une classe dans une autres classe
Résolu
kate42
Messages postés
61
Statut
Membre
-
kate42 Messages postés 61 Statut Membre -
kate42 Messages postés 61 Statut Membre -
Bonjour,
Voilà cela fait un petit moment que je cherche d'où vient mon problème et et n'ai pas trouvé de solution alors j'espère que quelqu'un pourra m'aider =). Merci d'avance.
Je suis assez novice en VBA mais j'ai des base en programmation Orienté objet.
Donc sous VBA j'ai créé 2 nouvelles classes : Site qui est composé de diverse propriétés (qui sont des String et Double) et Lien qui est composé de string et de Site.
alors ma question c'est donc est-ce que j'ai besoin de dire au début de ma classe Lien que ma classe Site existe ?
Car quand j'essaye de créer un Lien dans une subroutine (dans un module) j'ai une erreur d'éxecution 91.
Merci d'avance pour votre aide (N'hésitez pas à me faire des remarque sur la clarté de mon code ^^, je suis preneuse des conseils pour m'améliorer =))
au cas où je vous met la définition de mes deux classes et la subroutine que j'utilise :
Classe Site
Classe Lien
et enfin ma sub :
Voilà cela fait un petit moment que je cherche d'où vient mon problème et et n'ai pas trouvé de solution alors j'espère que quelqu'un pourra m'aider =). Merci d'avance.
Je suis assez novice en VBA mais j'ai des base en programmation Orienté objet.
Donc sous VBA j'ai créé 2 nouvelles classes : Site qui est composé de diverse propriétés (qui sont des String et Double) et Lien qui est composé de string et de Site.
alors ma question c'est donc est-ce que j'ai besoin de dire au début de ma classe Lien que ma classe Site existe ?
Car quand j'essaye de créer un Lien dans une subroutine (dans un module) j'ai une erreur d'éxecution 91.
Merci d'avance pour votre aide (N'hésitez pas à me faire des remarque sur la clarté de mon code ^^, je suis preneuse des conseils pour m'améliorer =))
au cas où je vous met la définition de mes deux classes et la subroutine que j'utilise :
Classe Site
Option Explicit '--------------------------------------- 'Classe Site '--------------------------------------- 'Création des propriétés propre à la classe Private sNom_Theo As String 'Nom Théorique du site Private sNom_SI As String 'Nom SI du site Private dX_Lamb As Double 'X en Lamert II étandu (coordonnée utilisée par Bytel) Private dY_Lamb As Double 'Y en Lamert II étandu (coordonnée utilisée par Bytel) Private sX_GE As String Private sY_GE As String Private sDescription As String 'Lecture et modification des propriétés de la classe Public Property Get Nom_Theo() As String Nom_Theo = sNom_Theo End Property Public Property Let Nom_Theo(ByVal vNewValue As String) sNom_Theo = vNewValue End Property Public Property Get Nom_SI() As String Nom_SI = sNom_SI End Property Public Property Let Nom_SI(ByVal vNewValue As String) sNom_SI = vNewValue End Property Public Property Get X_Lamb() As Double X_Lamb = dX_Lamb End Property Public Property Let X_Lamb(ByVal vNewValue As Double) dX_Lamb = vNewValue End Property Public Property Get Y_Lamb() As Double Y_Lamb = dY_Lamb End Property Public Property Let Y_Lamb(ByVal vNewValue As Double) dY_Lamb = vNewValue End Property Public Property Get X_GE() As String X_GE = sX_GE End Property Public Property Get Y_GE() As String Y_GE = sY_GE End Property Public Property Get Description() As String Description = sDescription End Property Public Property Let Description(ByVal vNewValue As String) sDescription = vNewValue End Property
Classe Lien
Option Explicit '--------------------------------------- 'Classe Lien '--------------------------------------- 'Création des propriétés propre à la classe Private sId_Lien As String 'Nom du Lien Private pSite_A As Site Private pSite_B As Site Private sDescription As String 'Lecture et modification des propriétés de la classe Public Property Get Id_Lien() As String Id_Lien = sId_Lien End Property Public Property Let Id_Lien(ByVal vNewValue As String) sId_Lien = vNewValue End Property Public Property Get Site_A() As Object Site_A = pSite_A End Property Public Property Set Site_A(ByVal vNewValue As Object) pSite_A = vNewValue End Property Public Property Get Site_B() As Object Site_B = pSite_B End Property Public Property Set Site_B(ByVal vNewValue As Object) pSite_B = vNewValue End Property Public Property Get Description() As String Description = sDescription End Property Public Property Let Description(ByVal vNewValue As String) sDescription = vNewValue End Property
et enfin ma sub :
Sub testSite() Dim Site_1 As Site 'création du pointeur vers l'objet Set Site_1 = New Site With Site_1 .Nom_Theo = "T83788" .X_Lamb = 845633 .Y_Lamb = 2136685 .Description = "z szd" End With Dim Site_2 As Site Set Site_2 = New Site With Site_2 .Nom_Theo = "T79924" .X_Lamb = 845633 .Y_Lamb = 2136685 .Description = "" End With Dim FH1 As Lien Set FH1 = New Lien FH1.Id_Lien = "FH test" FH1.Site_A = Site_1 ' quand je fais le mode pas à pas l'erreur est ici lors de l'appel du Get Sit_A() As Object FH1.Site_B = Site_2 Debug.Print Site_1.Nom_Theo; " coordonnées : "; Site_1.X_Lamb; " "; Site_1.Y_Lamb Debug.Print Site_2.Nom_Theo; " coordonnées : "; Site_2.X_Lamb; " "; Site_2.Y_Lamb Debug.Print FH1.Id_Lien 'ma dernière ligne n'est pas complète mais mon l’exécution plante avant End Sub
A voir également:
- Utilisation d'une classe dans une autres classe
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- Utiliser une tablette comme ecran pc - Guide
- Dans le code de la page, modifiez la couleur de fond de la classe .pix. un code de 4 chiffres doit apparaître dans la grille. lequel ? ✓ - Forum Excel
- La ressource demandée est en cours d'utilisation ✓ - Forum Caméra