Bonjour à tous !!

Bon, je suppose que la réponse est quelque part mais je trouve pas...

Je vous explique, j'ai donc une feuille avec 3 menus déroulants, le second changeant en fonction de l'item séléctionné dans le premier et le dernier changeant selon l'item sélectionné dans le second.

La source de ces menus est fixe et se trouve dans une autre feuille du même classeur.

Pour le moment, la modif ne peut se faire que ligne par ligne, si un utilisateur veut remonter sur une ligne précédemment completée, les menus ne se chargent plus. Le problème étant que bien évidemment, ils veulent tous pouvoir le faire, je passe donc mon temps à leur expliquer qu'ils doivent utiliser la dernière ligne mais ça complique les choses et ils finissent par faire n'importe quoi...

Voici mon 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 
Sub List1()
' List Macro
' Macro recorded 6/24/2008 by msa
'
 
'
Dim main As String
Dim category As String
Dim CAT As Range
Dim SCAT As Range
Dim CatR As Range
Dim SubR As Range
Dim x As Variant
Dim y As Variant
Dim c As Range
Dim d As Range
Dim i As Variant
 
 
Application.ScreenUpdating = False
Sheets("Menu_deroulante").Select
 
'Paramètrage des zones de recherche
 
Set CatR = Range(Cells(1, 2), Cells(21, 8))
Set SubR = Range("A25", "BG25")
 
'Création de la seconde liste de validation (categorie)en fonction de la "main" choisie.
 
 
With Sheets("Input_form").Range("C7", "C3000")
 
    Set c = .Find(what:="", LookIn:=xlFormulas, lookat:=xlPart, SearchOrder:=xlByColumns)
    If Not c Is Nothing Then
    i = c.Row
    Else
    End If
End With
 
i = i - 1
 
main = Sheets("Input_form").Cells(i, 3).Value
 
'Recherche de la "main"
 
With CatR
    Set c = .Find(what:=main, LookIn:=xlValues, lookat:=xlPart, SearchOrder:=xlByColumns)
    If Not c Is Nothing Then
        x = c.Column
    Else
    End If
End With
 
Set CAT = Range(Cells(2, x), Cells(21, x))
 
'Copie de la liste des category
 
Range("A57:A76").Value = CAT.Value
 
Sheets("Input_form").Activate
 
Application.ScreenUpdating = True
 
End Sub
Le code est le même pour la deuxième liste...

Ma question : Existe-t-il une possiblité de faire en sorte que mes déroulantes soient mises à jour à chaque fois qu'un autre item est sélectionné dans la déroulante précédente ?
Et si oui, comment je l'utilise ?

Désolée, je suppose que c'est stupide comme question pour la plupart d'entre vous mais je persiste à débuter

Merci d'avance !!