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 :

Classe et sous classe VBA / problème de déclaration


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Juillet 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2
    Par défaut Classe et sous classe VBA / problème de déclaration
    Bonjour à tous,

    J'ai une classe simple qui fonctionne correctement et j'ai une sous classe mais je ne trouve nulle part la façon de déclarer cette sous classe dans la classe appelante (hormis le private piece(10) as new Pieces)


    Exemple : Une classe A : Véhicule (marque, type... et Pièces(x))
    Une classe B : Pièces (Code, Type, Prix....)

    Je n'arrive pas à déclarer les :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub (Get/Set/let?)  CPieces() as Pièces
    set Cpieces(n) = 
    end sub
    Je ne sais pas si je suis assez clair

    L'idée c'est qu'un véhicule comporte plusieurs Pièces
    Si quelqu'un à la solution il me sauve la vie

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    tu disposes d'un evenement Class_Initialize() dans lequel tu peux faire ton set XX = new YY

    D'autre part, tu peux utiliser une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function Pioupiou(X as Integer) as clsTaClasse
    Set Pioupiou= TonTableau(X)
    End Function
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 535
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 535
    Par défaut
    Citation Envoyé par percussio Voir le message
    L'idée c'est qu'un véhicule comporte plusieurs Pièces
    Si quelqu'un à la solution il me sauve la vie
    le problème de VB6 c'est qu'on ne peut pas faire d'héritage.
    Il faut voir du côté des collections de classe, créer une classe "piece" puis créer à chaque fois une instance de classe de type pièce puis les placer dans la collection d'objets.
    Pour parcourir la collection il suffit d'une boucle pour accéder à chaque élément.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Exact,

    tu peux creer une classe clsPiece avec les caractèristiques

    et ensuite une classe clsPieceCollection qui contiendrait une collection Private

    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
    Private col as Collection
     
    Private Sub Class_Initialize()
    Set col = New Collection
    End Sub
     
    Public Sub Add(tmp As clsPiece)
    col.Add tmp
    End Sub
     
    Public sub Remove (i as Variant)
    col.Remove i
    End Sub
     
    Public Function Count() as Long
    Count = col.Count
    End Function
     
    Public Function Item(i As Variant) as ClsPiece
    Set Item = col.Item(i)
    End Function
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Juillet 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2
    Par défaut Merci pour vos informations
    Je vous remercie de m'avoir aidé.

    Ca fonctionne nickel

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/05/2009, 18h01
  2. Problème de déclaration de classe
    Par Xzander dans le forum C#
    Réponses: 5
    Dernier message: 24/07/2007, 20h29
  3. Inclusion de classes / problème de déclaration
    Par scal-80 dans le forum C++
    Réponses: 5
    Dernier message: 21/06/2006, 16h28
  4. Réponses: 2
    Dernier message: 27/05/2006, 12h13
  5. Réponses: 4
    Dernier message: 19/04/2006, 15h10

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