Bonsoir !

Je commence par me présenter simplement : newbie dans le domaine du VBA, étudiant en Genie Mécanique, on nous apprend quelques rudiments du VBA en cour, ce qui explique ma présence sur ce forum, qui m'as déjà beaucoup aidé jusqu'ici !
Je travail sur un petit projet de "bibliothèque", qui pour l'instant se limite à un userform rechercher qui permet d'aller chercher les livres qui m'interesse dans la feuille de base et de les renvoyer dans une autre feuille. Enfin bref, passons plutôt au problème.

Alors je cherche a créer ce qui se présente dans le menu déroulant de ma combobox de manière automatique. Pour la première, aucun problème (plutôt simple), mais la deuxième me pose un peu plus de problèmes...

Je m'explique : il me faut récupérer dans la colonne "C" tout les genres de documents auxquels je peut etre confronté (Roman, BD, Manga...)
Le problème cest que cela m'affiche donc 30 000 fois la meme chose avec ce code :
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
22
23
24
25
26
27
28
 
Private Sub UserForm_Initialize()
'Initialisation du menu déroulant de la ComboBox1
Dim VarDerColonne, i As Integer
CategorieBox.Clear
VarDerColonne = Worksheets("params").Range("Z1").End(xlToLeft).Column
 
'On ajoute la possibilité de pouvoir rechercher dans toutes les categories
CategorieBox.AddItem ("TOUT")
 
For i = 1 To (VarDerColonne - 1)
    CategorieBox.AddItem (Cells(1, i).Value)
Next i
 
 
CategorieBox.ListIndex = 0
 
Dim VarDerLigne As Integer
GenreBox.AddItem ("TOUT")
MsgBox "b"
VarDerLigne = Worksheets("params").Range("C65536").End(xlUp).Row
'VarPlage = Sheets("params").Range("C2:C" & VarDerLigne).Address
GenreBox.RowSource = "params!" & VarPlage
GenreBox.ColumnHeads = False
GenreBox.ListIndex = 0
 
 
End Sub

C'est une réutilisation du code que notre professeur nous avais donné.

J'ai donc tenté quelque chose : (pour la seconde combobox, sois GenreBox, la première étant CategorieBox)
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
 
 
Dim VarDerLigne, new_cat As Integer
GenreBox.AddItem ("TOUT")
MsgBox "b"
VarDerLigne = Worksheets("params").Range("C65536").End(xlUp).Row
new_cat = Worksheets("params").Range("C1").Value
 
GenreBox.AddItem (new_cat)
 
For i = 1 To VarDerLigne
    If Worksheets("params").Range("C" & i).Value <> new_cat Then
        new_cat = Range("C" & i).Value
        GenreBox.AddItem (new_cat)
    End If
Next i
 
End Sub
Mais cela ne fonctionne malheureusement pas "erreur de type"... je suppose que c'est du au "new_cat" mais je ne vois vraiment pas comment faire autrement !
En espérant avoir été assez clair (et ne pas avoir fait trop de fautes)
Merci d'avance !!

Shady