Bonjour,

Nouvel inscrit sur ce forum, je requiers aujourd'hui votre aide pour un classeur Excel 2010.

J'ai une feuille1 sur laquelle sont enregistrés en colonne A (à partir de A2) des N° de série (chiffres uniquement) ayant tous une structure identique, à savoir : "XXXXXXXX". Les deux premiers chiffres correspondent à l'année de fabrication d'un article, les deux suivants désignent la famille de l'article et enfin les quatre derniers indiquent le numéro de la série (0000 pour les prototypes, 0001 à 9999 pour les articles vendus).

Un N° de série "14010123" indique donc que l'article a été fabriqué en 2014, qu'il s'agit d'un aspirateur et que c'est le 123ème de la série.

Dans une feuille BDDarticles, j'ai répertorié la liste de tous mes articles en 3 colonnes. A=Famille B=code article C=Nom de l'article.

Dans la famille des aspirateurs ("01") il peut y avoir x articles différents ayant chacun un code article unique (j'ai 54 familles d'articles avec le même fonctionnement soit plus de 160 articles au total répartis entre elles)

Ainsi, ma feuille BDDarticles ressemble à

01 5151624 Aspirateur1
01 1201589 Aspirateur2
01 0901658 Aspirateur3
02 1201358 Téléphone1
02 1201359 Téléphone2
03 1301569 Téléviseur1
04 1301274 Téléscope1
04 1301275 Téléscope2
04 1301276 Téléscope3
04 1301277 Téléscope4
04 1301311 Téléscope5
04 1301312 Téléscope6

J'ai défini une plage de nom pour chaque famille d'article "code01", "code02", "code03"... jusqu'à "code54"

Mon problème est le suivant :

Via des userforms, je peux créer, modifier ou supprimer des fiches N° de série. Dans le Userfom qui me sert à créer une nouvelle fiche, j'entre dans une textbox le nouveau N° de série d'un article vendu. Dans une combobox, je liste automatiquement les articles qui appartiennent à la famille du N° de série entré (par le nom défini qui correspond) afin de réduire le choix et d'éviter toute erreur de saisie. En soit, tout fonctionne bien.

J'utilise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Private Sub TextBox1_Change() 'OK
Dim cdepdt As String
cdepdt = Mid(TextBox1.Value, 3, 2)
With Sheets("BDDarticles")
If cdepdt = "01" Then Me.ComboBox4.RowSource = ("code01")
'If cdepdt = "02" Then Me.ComboBox4.RowSource = ("code02")
'If cdepdt = "03" Then Me.ComboBox4.RowSource = ("code03")
If cdepdt = "04" Then Me.ComboBox4.RowSource = ("code04")
...
If cdepdt = "54" Then Me.ComboBox4.RowSource = ("code54)
End With
End Sub
Vu que le nombre d'article augmente régulièrement, même si le nombre de familles lui reste le même, je suis donc amené à allongé ma liste d'articles et par conséquent à redéfinir le range de cellules du nom défini pour chaque famille.

Je souhaiterais pouvoir créer un nouvel article automatiquement ajouté au nom défini qui lui correspond, sans avoir à trier la colonne famille, ou l'insérer à la suite du dernier de sa famille. Comment puis-je faire cela de façon dynamique, en spécifiant que si le nouvel article entré a pour famille "01", il fera automatiquement partie du nom défini "code01" et remontera ainsi automatiquement dans la liste de la combobox4 de mon Userform ?

Enfin, dans un autre Userform qui permet de faire une recherche par N° de série via un combobox, je souhaite lister dans mon combobox uniquement les numéros de série avec pour code famille "01".

N'hésitez pas à me demander des explications si je n'ai pas été suffisamment clair et d'avance merci pour vos réponses et pour votre aide.

Aëthan.