UserForm liste déroulante (cascade) avec ajout de données/modification

Bonjour tout le monde,

Je suis en train de réaliser un fichier qui sera envoyé à des fournisseurs (qui vont remplir les onglets pour le moment masqués) mais qui sera aussi utilisé par moi et potentiellement dans le futur d'autres personnes de l'entreprise (pour ajouter des données dans les onglets visibles).

J'ai réalisé un UserForm dans mon onglet "Données" qui s'ouvre lorsque je clique sur le bouton "Ajouter des données", dans ce UserForm j'ai plusieurs liste déroulante modifiable et c'est là que je commence déjà à me perdre.

Je voudrais que mes listes déroulantes soit en cascade et donc recherche mes valeurs déjà présentes dans mes différents onglets.

- Pour la première liste déroulante N° Fournisseur je viens rechercher mes données dans la colonne A de l'onglet "Données"

- Pour la seconde liste, le fournisseur dépend du n° fournisseur comme on peut le voir dans la colonne B de l'onglet "Données"

- Pour ma troisième liste, ma matière correspond au fournisseur et se situe dans l'onglet "Matière"

- Enfin ma dernière liste, l'épaisseur dépend du fournisseur et de la matière et se situe dans l'onglet Epaisseur

J'ai réussis dans mes onglets à faire le rapprochement via des formules comme celle-ci (qui me permet de retrouver l'épaisseur en fonction de la matière et du fournisseur) :

=DECALER(Epaisseurs!$A$2;1;EQUIV(Généralités!$B$2&" "&Généralités!$A10;Epaisseurs!$2:$2;0)-1;NBVAL(DECALER(Epaisseurs!$A$2;1;EQUIV(Généralités!$B$2&" "&Généralités!$A10;Epaisseurs!$2:$2;0)-1;100;1));1)

Mais je ne sais pas comment le reproduire en VBA ...

Ensuite vient le plus gros des problèmes j'aimerais pouvoir proposer l'ajout et la modification de données par mon userform

C'est à dire que potentiellement la personne pourrait rentrer toutes les données elle même et cliquer sur le bouton "Ajouter" , dans ce cas :

- Mon numéro de four viendrait s'ajouter à la liste en colonne A dans l'onglet "Données" à la suite des autres bien-sûr

- Mon fournisseur s'ajouterait dans la colonne B dans l'onglet "Données" à la suite des autres (en sachant qu'il doit être à côté de son numéro de four)

- Ainsi que dans l'onglet "Matière" sur la ligne 2 à la suite des autres : S'il s'agit d'un nouveau fournisseur

- Ma matière viendrait s'ajouter dans l'onglet "Matière" elle doit s'ajouter sous le fournisseur associé

- Dans mon onglet "Epaisseur" si nous avons un nouveau fournisseur, il doit être ajouté ligne 2 avec sa matière associée (par exemple : j'ai rempli dans le formulaire Fournisseur : G et matière : Compact) alors en ligne 2 à la fin de ceux déjà présent j'ai "G Compact" qui s'ajoute, et en dessous j'ai mon épaisseur qui vient s'ajouter aussi par rapport à ce que j'ai ajouté dans mon UserForm.

Bien évidemment, j'aimerais qu'il soit possible d'ajouter une donnée que sur un paramètre, par exemple :

Je souhaite ajouter la matière Bambou sur mon fournisseur B et avec une épaisseur de 20 (car la matière n'est pas encore présente)

Du coup, je sélectionne mon numéro de four qui va s'associer au fournisseur B j'ai donc mes deux premières combobox qui sont existantes, ensuite dans matière je rentre "Bambou" et dans épaisseur "20"

Du coup, lorsque je click sur "Ajouter"

- J'ai ma matière "Bambou" qui vient s'ajouter sous la colonne du fournisseur B dans l'onglet "Matière"

- J'ai la création d'une colonne "B Bambou" et l'ajout de l'épaisseur 20 dans mon onglet "Epaisseurs"

Si maintenant je souhaite n'ajouter qu'une épaisseur avec un fournisseur et une matière déjà présente alors je sélectionne dans mon userform les bonnes données pour :

- N° Fournisseur / Fournisseur / Matière

Puis je rentre moi même une épaisseur dans le cadre : Epaisseur

Alors dans l'onglet Epaisseur vient s'ajouter sous le bon fournisseur/matière (présent en ligne 2) ma nouvelle épaisseur.

Je ne sais pas si je suis assez compréhensible dans mon besoin, je maitrise encore assez mal le UserForm et donc je ne suis même pas sûr que ce que je veux faire et possible alors voilà je jette une bouteille à la mer afin d'avoir de l'aide et savoir si quelqu'un sera m'aider

Bonne journée à tous et merci d'avance !!

54userform-aide.xlsm (70.14 Ko)

Bonjour Ferdinand,

Si je comprend ton raisonnement nous n'avons pas le droit de faire une demande ailleurs que simplement sur ce forum ?

J'ai déjà eu un post zappé sur ce forum, je me suis donc dit qu'il pouvait être utile de demander ailleurs car vous n'êtes pas toujours disponible mais apparemment c'est un souci ?

Eclair ma lanterne sur le pourquoi du coup ..

Re-Bonjour à tous,

Je continue à avancer dans mon besoin, j'ai réussis déjà une première petite avancée de mon côté avec le code suivant sur le bouton "Ajouter" :

Private Sub CommandButton2_Click()

If ComboBox4.Value = "" Then
MsgBox "Veuillez rentrer/choisir un n° fournisseur"
Else
If ComboBox1.Value = "" Then
MsgBox "Veuillez rentrer/choisir un fournisseur"
Else
Dim ligne As Integer
If MsgBox("Confirmez-vous l'ajout des données ?", vbYesNo, "confirmation") = vbYes Then
Worksheets("Données").Select
ligne = Sheets("Données").Range("A1048576").End(xlUp).Row + 1
Column = Sheets("Matière").Range("A2").End(xlToRight).Column + 1
Cells(ligne, 1) = ComboBox4.Value
Cells(ligne, 2) = ComboBox1.Value
Worksheets("Matière").Cells(2, Column) = ComboBox1.Value
Unload UserForm1
UserForm1.Show
Else
End If
End If
End If
End Sub

J'ai donc réussis à faire en sorte que mon numéro de fournisseur ainsi que le nom de mon fournisseur soit bien ajouté aux bons endroits soit :

Dans la colonne A et B de l'onglet "Données" et à la fin de ma ligne 2 dans l'onglet Matière

Je cherche actuellement à ajouter ma matière sauf que mon problème c'est qu'il est possible que j'ajoute plusieurs matière dans l'onglet Matière et je ne sais pas encore comment faire pour qu'il fasse l'ajout de manière dynamique dans la bonne colonne et sans potentiellement risquer de détruire une ligne déjà existante ..

Encore une fois, mon double sujet n'a pas pour vocation de faire perdre du temps aux personnes, je cherche moi même de mon côté et c'est juste que j'aimerais vraiment trouvé une solution.

Bonne journée à tous.

Rechercher des sujets similaires à "userform liste deroulante cascade ajout donnees modification"