IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Programmation Objet en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 150
    Points : 100
    Points
    100
    Par défaut Programmation Objet en VBA
    Bonjour à tous,
    cela fait quelques temps que je programme en vba mais c'est en lisant un livre sur le Java que j'ai découvert la POO.
    J'aimerais donc l'appliquer à VBA. J'ai compris que cela se passe via les modules de classe comme le montre bien le tuto suivant http://sinarf.developpez.com/access/vbaclass/
    Mais j'aimerais aller plus loin!
    Reprenons l'exemple de la classe Personne du tuto: on y défini des property comme nom, prenom, date de naissance....
    J''aimerais maintenant définir une classe visage qui comprend : yeux, nez, cheveux,......
    et la classe cheveux comprendrait : longueur, couleur, type,...
    Pour finalement écrire un truc du genre:
    Personne("TOTO").Visage.Cheveux.Couleur="Blond"

    Est ce quelqu'un pourrait m'aider à réaliser cela?
    Merci.....

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonsoir,

    Les classes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    'Personne
    Dim clsVisage As Visage
     
    Property Get Visage() As Visage
        Set Visage = clsVisage
    End Property
     
    Private Sub Class_Initialize()
        Set clsVisage = New Visage
    End Sub
     
    'Visage
    Dim clsCheveux As Cheveux
     
    Property Get Cheveux() As Cheveux
        Set Cheveux = clsCheveux
    End Property
     
    Private Sub Class_Initialize()
        Set clsCheveux = New Cheveux
    End Sub
     
    'Cheveux
    Dim clsCouleur As String
    Dim clsLongueur As Long
     
    Property Get Couleur() As String
        Couleur = clsCouleur
    End Property
     
    Property Let Couleur(NewCouleur As String)
        clsCouleur = NewCouleur
    End Property
     
    Property Get Longueur() As Long
        Longueur = clsLongueur
    End Property
     
    Property Let Longueur(NewLongueur As Long)
        clsLongueur = NewLongueur
    End Property
    L'utilisation, dans un module standard:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Test()
     
        Dim Quidam As Personne
     
        Set Quidam = New Personne
     
        With Quidam.Visage.Cheveux
            .Couleur = "Blond"
            .Longueur = 10
            MsgBox .Couleur & " " & .Longueur
        End With
     
    End Sub
    Ce n'est qu'une base pour démarrer, précise ton besoin si tu bloque.

    Cordialement,

    Tirex28/

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 150
    Points : 100
    Points
    100
    Par défaut
    Merci. C'est exactement ce que je voulais car a vrai dire mon problème était juste de l'ordre de la syntaxe : je cherchais un extends ou un ::.
    J'allais poser une question sur l'heritage mais au vu de ta réponse elle me semble inutile.

    Cdt,
    -={~_~}=-

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Objets] La programmation Objet et VBA
    Par seb92400 dans le forum Sondages et Débats
    Réponses: 75
    Dernier message: 09/11/2007, 00h35
  2. [Débutant(e)][Conception] prob de programmation objet
    Par gregorian dans le forum Général Java
    Réponses: 3
    Dernier message: 07/07/2005, 11h20
  3. Questions sur la programmation objet en Delphi
    Par Manopower dans le forum Débuter
    Réponses: 20
    Dernier message: 15/06/2005, 15h39
  4. [ASP] Programmation objet ?
    Par Hell dans le forum ASP
    Réponses: 6
    Dernier message: 07/04/2005, 15h28
  5. Problème programmation objet
    Par Contrec dans le forum MFC
    Réponses: 54
    Dernier message: 30/03/2005, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo