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 :

Compter le nombre d'attributs d'une classe


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 66
    Par défaut Compter le nombre d'attributs d'une classe
    Bonjour,

    Je souhaiterai savoir si il existe un moyen de compter le nombre d'attributs d'une classe en VBA, tout est dans le titre.

    Cdt,

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Citation Envoyé par JahExodus Voir le message
    tout est dans le titre.
    Tout est dans le titre, sauf ce que tu entends par "attributs" d'une classe.

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour Franck
    sauf ce que tu entends par "attributs" d'une classe
    ce terme "attributs" est celui qui est utilisé pour désigner ce que l'on appelle plus communément "propriétés".
    L'inconnue, par contre, est la "classe" construite de A à Z ou "sur une base d'objet".
    Dans un cas comme dans l'autre, d'ailleurs, je ne vois personnellement pas trop l'utilité d'en connaître le NOMBRE

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour Jacques,

    ce terme "attributs" est celui qui est utilisé pour désigner ce que l'on appelle plus communément "propriétés".
    L'inconnue, par contre, est la "classe" construite de A à Z ou "sur une base d'objet".
    Dans un cas comme dans l'autre, d'ailleurs, je ne vois personnellement pas trop l'utilité d'en connaître le NOMBRE
    D’où ma question.
    Peut-être que ce vocabulaire ne lui est pas familier et qu'il sous-entend par "attribut" le mot "instance".

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 66
    Par défaut
    Bonjour,

    Désolé de ne pas avoir été assez précis. Par "attributs" j'entendais effectivement "propriétés" de ma classe, "créée de A à Z"
    Je cherchais en effet à compter ses propriétés pour essayer d'adapter dynamiquement une listbox pour afficher dynamiquement certaines valeurs des instances de mes classes.
    J'ai du faire ça sur demande d'un supérieur, mais il s'est avéré que c'etait se compliquer la vie pour pas grand chose et nous avons décidé d'abandonner.
    Je mets le sujet en résolu

  6. #6
    Membre très actif Avatar de Gorzyne
    Profil pro
    Collégien
    Inscrit en
    Janvier 2008
    Messages
    337
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2008
    Messages : 337
    Par défaut
    c'est pas résolu vu que je peux encore répondre...
    j'aurai envie de dire de passer par une variable globale que tu incrémentes à chaque création d'un nouvel "attribut"

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    ce que je voudrai bien comprendre c'est si l'intéressé à ouvert une discutions philosophique ou si il attends véritablement une réponse!

    car sans pouvoir analyser son code je ne pourrai que dire comptes sur tes doigts!

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 66
    Par défaut
    Bonjour,

    Je souhaitais effectivement avoir une réponse, mais comme je l'ai indiqué par la suite, ce n'est plus nécessaire.
    Cependant, il peut toujours être intéressant de savoir si c'est possible.
    voici un exemple d'une petite de mes 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
     
    Option Explicit
     
    'variables locales de stockage des valeurs de propriétés
    Private P_STR_idcategory As String 'copie locale
    Private P_STR_nomcategory As String 'copie locale
    Public Property Let STR_idcategory(ByVal PAR_STR_idcategory As String)
        P_STR_idcategory = PAR_STR_idcategory
    End Property
    Public Property Get STR_idcategory() As String
        STR_idcategory = P_STR_idcategory
    End Property
    Public Property Let STR_nomcategory(ByVal PAR_STR_nomcategory As String)
        P_STR_nomcategory = PAR_STR_nomcategory
    End Property
    Public Property Get STR_nomcategory() As String
        STR_nomcategory = P_STR_nomcategory
    End Property
    J'aurais aimé par je ne sais quel moyen pouvoir retourner le nombre 2 car deux propriétés dans cette classe, le tout sans vraiment toucher au code dans les classes. Sinon effectivement autant compter sur ses doigts

    Cdt,

  9. #9
    Invité
    Invité(e)
    Par défaut
    pour faire ce que tu veux, il faut revoir toute ta classe et même ton code appelant ta classe!

    Code Classe1 : 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
    Private dict As Object
    Private Sub Class_Initialize()
    Set dict = CreateObject("Scripting.Dictionary")
    End Sub
    Private Sub Class_Terminate()
    Set dict = Nothing
    End Sub
     
     
    Public Property Let test(Attribut, value)
    k = dict.Keys
    If IsNumeric(Attribut) Then dict(k(Attribut - 1)) = value Else dict(Attribut) = value
    End Property
    Public Property Get test(Attribut)
    k = dict.Keys
    If IsNumeric(Attribut) Then test = dict(k(Attribut - 1)) Else test = dict(Attribut)
    test = dict(Attribut)
    End Property
    Public Property Get NbAttribut()
    NbAttribut = dict.Count
    End Property

    Code Module1 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub test()
    Dim cls As New Classe1
    cls.test("PAR_STR_idcategory") = "toto"
    cls.test("PAR_STR_nomcategory ") = "titi"
    For I = 1 To cls.NbAttribut
        cls.test(I) = cls.test(I) & "AAA"
        Debug.Print cls.test(I)
    Next
    End Sub
    Dernière modification par Invité ; 17/05/2017 à 13h14.

  10. #10
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 66
    Par défaut
    Merci pour ces précisions

  11. #11
    Invité
    Invité(e)
    Par défaut
    je me doute que tu ne voulais pas lire ça!

  12. #12
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 66
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    je me doute que tu ne voulais pas lire ça!
    Quoi donc? Je suis content d'avoir eu une réponse, cependant je ne vais sûrement pas l'appliquer en tout cas pas tout de suite

  13. #13
    Invité
    Invité(e)
    Par défaut
    je suis d'accord avec toi, c'est le genre de truc qu'on fait en début de projet après c'est galère pour réaligner tous!

  14. #14
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 66
    Par défaut
    Effectivement, c'est l'une des raisons pour laquelle je ne pense pas mettre cette solution en place.
    A moins que je finisse mon projet en avance et que j'ai le temps d'optimiser mon code encore plus

    Merci en tout cas

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

Discussions similaires

  1. Récupérer le nombre et le type d'attribut d'une class
    Par adurandet dans le forum Langage
    Réponses: 5
    Dernier message: 27/11/2009, 18h19
  2. Compter le nombre d'instance d'une classe
    Par cashmoney dans le forum Langage
    Réponses: 2
    Dernier message: 21/09/2009, 11h31
  3. Compter le nombre d'instance d'une classe
    Par themadmax dans le forum C#
    Réponses: 6
    Dernier message: 12/07/2008, 09h48
  4. [XPATH] Compter le nombre d'attributs qui ont une valeur donné
    Par doozor dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 26/05/2008, 10h06
  5. Réponses: 7
    Dernier message: 08/01/2005, 13h24

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