Problème code VBA, ComboBox cascade

goraxx31

XLDnaute Nouveau
Bonjour,
Je suis débutant en VBA et pour un projet j'ai besoin de créer un programme de gestion de stock mais je bloque sur une partie.
Voici mon problème :
Sans titre.jpg

Les couleurs sont ici pour illustrer mes propos.
Jai une colonne A qui correspond à des familles d'objets, cette colonne est associée à des numéros en colonne B.
En colonne C j'ai une sous famille qui correspond au premier élément de la colonne A (combobox en cascade) et cette colonne est aussi associée à une colonne de lettres cette fois ci.
Ainsi de suite... Au final j'ai une grande famille, une sous famille et une sous sous famille.

Je sais comment coder les combobox en cascade MAIS je dois pouvoir rajouter des éléments (via un formulaire) dans chaque famille ou sous famille ce qui fait que je ne sais pas comment organiser cette base de données (BDR), pour lui permettre d'etre évolutive avec des numéro et des lettres qui s'incrémentent.
J'ignore si mon problème est clair, n'hésitez pas à me le faire savoir

Je vous met en PJ mon classeur, le problème n'en sera que plus clair pour vous.
Le but général du programme est de gérer un stock donc, soit de faire un input/output à partir de ref déjà existantes, soit de créer ces ref, et c'est la que je coince...

J'ai hate de lire vos réponses car je sature un peu la :)
Cordialement,

Thomas

Edit : N'hésitez pas à critiquer/corriger mon code déjà en place, je suis débutant et j'ai beaucoup à apprendre, merci

Edit Edit : Je suis au Vietnam, d'ou ma nécessité d'utiliser l'anglais et il y a 5h de décalage donc les échanges seront peut êtres décalés, c'est pas de la mauvaise volonté, voila c'est tout :)
 

Pièces jointes

  • Sans titre.jpg
    Sans titre.jpg
    51.5 KB · Affichages: 68
  • Sans titre.jpg
    Sans titre.jpg
    51.5 KB · Affichages: 63
  • FINAL.xlsm
    50.8 KB · Affichages: 44
  • FINAL.xlsm
    50.8 KB · Affichages: 59
  • FINAL.xlsm
    50.8 KB · Affichages: 61
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Problème code VBA, ComboBox cascade

Bonjour.
Le but général du programme est de gérer un stock donc, soit de faire un input/output à partir de ref déjà existantes, soit de créer ces ref
En général je ne me casse pas la tête :
- Une seule feuille pour la base de donné, soit seulement le stock instantané, soit un historique des mouvements à raison d'une ligne pour chacun, soit un compromis: une ligne par article mais un groupe de plusieurs paires colonnes à la fin pour les derniers mouvements, date/heure et quantité changée en +ou- ou bien totale en stock.
- Un seul Userform qui sert à tout: Consultation, création/modification/suppression d'un article, mouvements apports ou retraits.
- Un objet ComboBoxLiées pour gérer les ComboBox liées sans avoir absolument plus aucune programmation à ce sujet dans l'Userform, sauf, un tant soit peu dans l'Userform_Initialize, pour lui indiquer quels ComboBox gérer et à quelle colonne de la base chacun correspond.
- Un LCou (ligne courante) global pour savoir au moment de la validation si c'est une ligne à ajouter (LCou=0) ou à modifier (LCou>0) et qui est défini lors de la prise en charge des évènements Change et Résultat de mon objet ComboBoxLiées. La Private Sub CL_Change(Lignes() As Long) reçoit en effet la liste des numéros de lignes dans la base où tous les critères correspondent aux ComboBox qu'il gère et dont il s'occupe automatiquement, pour l'opérateur, de garnir les List en n'y proposant par ordre alpha que les choix compatibles avec les ComboBox déjà renseignés, l'étant d'office de leurs valeurs ceux pour lesquels n'existe plus qu'un choix possible (cliquer dans le ComboBox pour figer cette valeur assumée avant de renseigner d'autres ComboBox notamment de nouveautés, et option pour colorer différemment les fonds des ComboBox: non renseignés bleu gris, choix existant vert, inexistant rouge saumon, assumé cyan.)
 
Dernière édition:

goraxx31

XLDnaute Nouveau
Re : Problème code VBA, ComboBox cascade

Bonjour,

Un LCou (ligne courante) global pour savoir au moment de la validation si c'est une ligne à ajouter (LCou=0) ou à modifier (LCou>0) et qui est défini lors de la prise en charge des évènements Change et Résultat de mon objet ComboBoxLiées.

Très bien je vais me renseigner sur cette fonction que je ne connais pas ! Merci pour le tuyau.
Cependant la création de référence est une contrainte qui m'est imposée, je vais chercher encore un peu !

Cordialement,

Thomas
 

Dranreb

XLDnaute Barbatruc
Re : Problème code VBA, ComboBox cascade

Bonjour.

Non, LCou n'est le nom que je donne habituellement à cette variable globale déclarée par Dim LCou As Long en tête de l'Userform, derrière la Dim WithEvents CL As ComboBoxLiées.
Il n'y a donc pas à chercher ailleurs, d'ailleurs, si vous voulez vous orienter vers cette voie, vous aurez aussi besoin de mes modules de service.
On pourra s'arranger pour que si, au moment de la création d'une ligne article, la référence n'est pas renseignée dans la ComboBox qui lui est réservée, il en soit créée une par incrémentation de la plus élevée des existantes.
 
Dernière édition:

Discussions similaires