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 :

classes VBA construire une nomenclature [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Superviseur de Hotline
    Inscrit en
    Novembre 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Superviseur de Hotline
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2021
    Messages : 9
    Par défaut classes VBA construire une nomenclature
    Bonjour,
    La recherche avancée ne m'a pas aidée; peut être mauvaise utilisation.
    J'utilise excel 2016 et mon projet va probablement tourner sur 2007.
    Il s'agit d'une gestion de stock avec mouvements, commandes suivi de fabrication etc.
    Quelques exemples glanés sur le web m'ont bien aidés.
    Ma question: j'essaie d'élaborer une classe "produit fini" qui contient les variables ID, Nom, Stock etc.
    Cette classe va me permettre de gérer les fabrications
    Là où je butte , je n'arrive pas à construire cette classe qui va contenir un nombre variable de pièces détachées, ce que je ne peux déterminer initialement.
    JE voudrais donc avoir une variable MP (n) mais je ne vois pas comment réaliser cette possibilité dans une classe. suis-je clair?
    J'ai déjà des classes Mat première, fournisseur, commande et tout ça va plutôt bien
    Merci de vos pistes.

  2. #2
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 580
    Par défaut
    Bonsoir,
    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
    Sub test()
    Dim PM() As New ProduitFini
    For i = 0 To 10
        ReDim Preserve PM(i)
        PM(i).ID = i: PM(i).Nom = "Nom" & i: PM(i).Stock = 23
    Next
     
     
    'l'avantage d'une collection sur un tableau c'est qu'il est possible deretrouver un élément part son nom!
    ' PMX("Nom" & i).ID
    Dim PMX As Object: Set PMX = CreateObject("Scripting.Dictionary")
    For i = 0 To 10
       If Not PMX.exists("Nom" & i) Then PMX.Add "Nom" & i, New ProduitFini
         PMX("Nom" & i).ID = i: PMX("Nom" & i).Nom = "Nom" & i: PMX("Nom" & i).Stock = 23
    Next
    End Sub
    Nom : Sans titre.png
Affichages : 397
Taille : 201,9 Ko

  3. #3
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 209
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    2 solutions
    Soit gérer une Collection pièces détachées
    Soit gérer une propriété contenant un tableau dynamique

    Les Collections ayant des méthodes/propriétés déjà existantes, ça serait sans doute le plus simple

    J'avais fait ça il y a longtemps et j'ai presque tout oublié depuis mais si ça peut inspirer
    Fichiers attachés Fichiers attachés

  4. #4
    Membre averti
    Homme Profil pro
    Superviseur de Hotline
    Inscrit en
    Novembre 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Superviseur de Hotline
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2021
    Messages : 9
    Par défaut merci
    impressionné par la rapidité et la précision des réponses. merci beaucoup.
    J'avais déjà repéré les collections mais pas tout compris. Puisque vous semblez y voir une solution, je vais me pencher sur la question.
    quant à l'arbre, je découvre. je sais ce que c'est en maths; à voir en vba.

  5. #5
    Membre averti
    Homme Profil pro
    Superviseur de Hotline
    Inscrit en
    Novembre 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Superviseur de Hotline
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2021
    Messages : 9
    Par défaut suite de la classe produit fini
    si je comprends bien, je crée ma classe produit fini dans laquelle je mets grâce à vous une collection de Matière première .
    Je me retrouve avec:
    Nom : nomenclature.png
Affichages : 436
Taille : 5,3 Ko

    où on voit qu'on peut évidemment avoir la même Mat première (ou pièce détachée) dans plusieurs produits finis.
    je mets tous les PF en tant que parent et toutes les MP en enfants
    Si la démarche est bien celle là, je vais savoir me débrouiller avec les classements et les réalisations de nomenclatures. quelques usform et le tour est joué.

  6. #6
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 209
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par peduch Voir le message
    si je comprends bien, je crée ma classe produit fini dans laquelle je mets grâce à vous une collection de Matière première .
    Je me retrouve avec:
    Nom : nomenclature.png
Affichages : 436
Taille : 5,3 Ko

    où on voit qu'on peut évidemment avoir la même Mat première (ou pièce détachée) dans plusieurs produits finis.
    je mets tous les PF en tant que parent et toutes les MP en enfants
    Si la démarche est bien celle là, je vais savoir me débrouiller avec les classements et les réalisations de nomenclatures. quelques usform et le tour est joué.
    Bonsoir
    Oui, je suppose que c'est une solution; mais je ne suis pas sûr d'avoir une vision complète de votre classe Produit fini
    Il est possible que chaque matière première soit associée à une quantité, je ne sais pas

  7. #7
    Membre averti
    Homme Profil pro
    Superviseur de Hotline
    Inscrit en
    Novembre 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Superviseur de Hotline
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2021
    Messages : 9
    Par défaut nomenclature (suite)
    Citation Envoyé par tototiti2008 Voir le message
    Bonsoir
    Oui, je suppose que c'est une solution; mais je ne suis pas sûr d'avoir une vision complète de votre classe Produit fini
    Il est possible que chaque matière première soit associée à une quantité, je ne sais pas
    Vous avez raison, je ne suis pas encore entrainé pour décrire clairement mon propos.
    j'ai effectivement une classe mat première qui contient la stock de MP que je vais faire varier selon les fabrications de produits finis.
    cette classe MP ne me pose aucun problème et me permet de gérer mon cadencement de commande fournisseur (j'ai une classe fournisseur) et les réceptions
    La classe problématique produits finis contient évidemment le stock de produits finis, encore une fois facile.
    pour la fabrication, si la nomenclature d'un prod fini contient deux fois une unité de MP, la fabrication d'un produit va générer (-2) sur le stock de mat prem et +1 sur le stock PF.
    ça ne ma pose pas de problème de conception.
    ce que j'appréhende mal, c'est la nomenclature proprement dite dans la classe produit fini puisque la définition de cette classe doit prévoir un nombre inconnu de composants avant la création de la nomenclature de mat prem/pièce détachée.
    définir une classe avec un ID , un Nom, un stock c'est facile mais définir la classe en ne connaissant pas la liste compète de variables, je visualise mal.
    la solution brutale serait de créer 100 variables MP1,MP2,MPn et d'en utiliser un nombre correspondant au nombre de MP de chaque nomenclature. Quelle horreur de conception.
    LA collection qui m'a été suggérée me paraît une solution mais je ne maîtrise pas encore.
    J'ai déjà fait un premier système en codant en dur les produits finis mais ce n'est ni élégant ni facile à maintenir; l'avantage, ça fonctionne aujourd'hui.
    Tout cela, c'est pour un petite structure en train de se monter actuellement gérée "à la main"

  8. #8
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 209
    Billets dans le blog
    2
    Par défaut
    Bonsoir,

    L'idée est de définir une classe Matière première (MP) définissant le contenu d'une seule occurrence de matière première
    Ensuite, une propriété de la classe Produit fini (PF) devra contenir une collection (comme la classe cEnfants et la collection CollecEnfant associée à chaque membre de la classe cElement dans l'exemple que je t'avais envoyé), collection qui pourra contenir des objets Matière première (MP), de façon à pouvoir ajouter autant de MP associées que voulu à un PF

    Une collection a en plus naturellement des méthodes Add/Remove pour pouvoir ajouter ou supprimer un élément à la collection facilement

  9. #9
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 209
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    sujet analogue et des pistes complémentaires
    https://www.developpez.net/forums/d2...e-declaration/

  10. #10
    Membre averti
    Homme Profil pro
    Superviseur de Hotline
    Inscrit en
    Novembre 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Superviseur de Hotline
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2021
    Messages : 9
    Par défaut
    Citation Envoyé par tototiti2008 Voir le message
    Bonjour,

    sujet analogue et des pistes complémentaires
    https://www.developpez.net/forums/d2...e-declaration/
    merci beaucoup, ça ressemble furieusement à ce que je veux faire. donc mon pb n'est pas original.
    Finalement, je suis aussi peu doué en classes vba qu'en recherche dans le forum

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

Discussions similaires

  1. Construire une classe interne
    Par Ettienne dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 08/02/2014, 17h29
  2. [VBA] Surcharge d'opérateur dans une classe VBA
    Par remitbo dans le forum Général VBA
    Réponses: 1
    Dernier message: 17/09/2011, 07h27
  3. construire automatiquement les classes dérivée a une class mere
    Par elekis dans le forum Général Python
    Réponses: 17
    Dernier message: 09/06/2009, 20h53
  4. Réponses: 2
    Dernier message: 27/05/2008, 16h59

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