Bonjour à tous ,

De retour pour me permettre de comprendre si vous le voulez bien
le code suivant dont l'inspiration est issue de ce forum :

Plantons le décor
un USF avec 2 ComboBox
-> (Box2) = filtrée
-> (Box3) = filtré à partir des données de Box2
ensuite recherche dans la feuille choisie des données à mettre à jour puis sauvegarde ...

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
Private Sub Box2_Change()
Dim c As Range
 
'filtrage de la feuille de donnée sur la valeur de combo et remplissage
'de combo2 par les valeurs des cellules filtrées et le numéro de ligne
 
'Application.ScreenUpdating = False
 
Me.Box3.Clear
With Sheets("TR" & Box1.Value)
   .Range("A5", .Cells(Rows.Count, 1).End(xlUp)).AutoFilter field:=1, Criteria1:=Box2.Value
   For Each c In .Range("B6:B" & .Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
      With Me.Box3
         .AddItem c.Value
         .List(.ListCount - 1, 1) = c.Row
      End With
   Next c
   .Range("A5", .Cells(Rows.Count, 1).End(xlUp)).AutoFilter
End With
Me.Box2.Locked = True <----- (2)
 
End Sub
J'ai trois problèmes distincts liés à ce code

1 ) celui remplit parfaitement son rôle qui consiste à mettre dans Box3.value le resultat de la colone B ( chiffre ) + le N° de la ligne pour une utilisation ulterieure mais ne fonctionnement plus dès qu'il s'agit de la 1ere ligne de la feuille ( ici "TR"+... ) pour resoudre ce pb j'ai du mettre "B5:B" au lieu de "B6:B" (?)

2) si l'utilisateur veut réactualiser Box2.value , çà plante et j'ai du mettre la ligne en (2) là aussi çà marche mais je sais pas (?)

3) malgre l'utilisation "Range("A5"....).autofilter ,le filtre sur la feuille concerné disparait


Voilà en quelques mots mes divers pb
Merci par avance de bien vouloir me preter un petit coup de main et Bon WE à tous !!
A++