Bonjour le forum,
Tout d'abord je tiens à préciser que mes codes sont sûrement loin d'être optimaux, je n'utilise pas de TS ou autres, je n'ai vraiment plus de temps pour m'attarder sur de nouvelles connaissances qui me prendront du temps à réussir à mettre en place... à cause des délais cours qui m'ont été dernièrement imposés. J'aurai donc besoin de votre aide sur un point en particulier qui vient de me poser problème ce matin.
En effet, j'ai une ComboBox contenant des Codes BG qui est alimentée automatiquement en fonction des valeurs renseignées à la fois dans la ComboBox Pavé 4 et Pavé 5. Le souci est que lorsque je change la valeur renseignée, à travers la ComboBox Pavé 5 par exemple, j'ai une erreur qui apparaît :
Erreur d'Exécution '1004': Pas de cellules correspondantes
Mon tableau filtré est complètement vide.
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 T_Cons_CBP5_Change() Dim derLig As Integer Dim CBR As Range, CellCBR As Range Dim WbO As Worksheet Set Wb = ThisWorkbook Set WbO = Wb.Sheets(1) derLig = WbO.Cells(WbO.Rows.Count, 1).End(xlUp).Row WbO.Range("A2").AutoFilter WbO.Range("A2").AutoFilter Field:=12, Criteria1:=T_Cons_CBP5.Value Set CBR = WbO.Range(WbO.Cells(2, 2), WbO.Cells(derLig, 2)).SpecialCells(xlCellTypeVisible) T_Cons_CBBG.Clear For Each CellCBR In CBR T_Cons_CBBG.AddItem CellCBR.Value Next End SubL'erreur se situe sur cette ligne, du second 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 Private Sub T_Cons_CBBG_Change() Dim derLig As Integer Dim CBR As Range, CellCBR As Range Dim WbO As Worksheet Set Wb = ThisWorkbook Set WbO = Wb.Sheets(1) derLig = WbO.Cells(Rows.Count, 2).End(xlUp).Row WbO.Range("A2").AutoFilter WbO.Range("A2").AutoFilter Field:=2, Criteria1:=T_Cons_CBBG.Value Set CBR = WbO.Range(WbO.Cells(2, 3), WbO.Cells(derLig, 3)).SpecialCells(xlCellTypeVisible) For Each CellCBR In CBR T_Cons_TBLib.Text = CellCBR.Value Next End Sub
Je ne comprends pas vraiment pourquoi l'erreur existe... Ou bien je n'ai pas bien saisi la manière dont s'exécute la superposition des codes, je vais donc expliquer comment je perçois le déroulement, afin que vous puissiez comprendre ma manière de le percevoir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set CBR = WbO.Range(WbO.Cells(2, 3), WbO.Cells(derLig, 3)).SpecialCells(xlCellTypeVisible)
Dans la succession, l'initialisation des 2 ComboBox se fait simultanément. En effet, c'est la valeur saisie dans le Pavé 4 qui va déterminer les valeurs disponibles dans les 2 ComboBox.
Dans la procédure T_Cons_CBP5_Change()
Le code...
détermine le numéro de la dernière ligne
réinitialise les filtres
réalise un filtre sur la colonne 12 - correspondant aux valeurs Pavé 5 - en fonction de la valeur renseignée grâce à la Liste Déroulante
définit une plage de cellules correspondant aux résultats filtrés - colonne 2 correspond aux codes BG
vide la ComboBox des codes BG
remplit la ComboBox des codes BG avec chaque cellule de la plage préalablement définie
Dans la procédure T_Cons_CBBG_Change()
Le code...
détermine le numéro de la dernière ligne
réinitialise les filtres
réalise un filtre sur la colonne 2 - correspondant aux valeurs des codes BG - en fonction de la valeur renseignée grâce à la Liste Déroulante
définit une plage de cellules correspondant aux résultats filtrés - colonne 3 correspond aux libellés associés aux codes BG
(ligne d'erreur)
remplit la TextBox Libellé avec le résultat choisi. Sachant qu'un code BG est unique, il n'y aura qu'un seul libellé à afficher dans la TextBox.
Je souhaiterai ainsi savoir si le déroulé que j'ai écrit correspond au déroulé que j'ai imaginé. Lors de la première boucle je n'ai aucun problème. Je choisis librement mon Pavé 4 et mon Pavé 5, et cela met à jour ma combobox Codes BG. Le choix du code m'inscrit le libellé associé dans la TextBox Libellé. Tant que je ne change pas la valeur renseignée en Pavé 4 ou Pavé 5, je n'ai aucun problème. Mais dès que j'y touche, j'ai le code erreur 1004 comme cité au-dessus. Me serai-je trompé dans l'écriture de l'AutoFilter ? Je pense que l'erreur ne peut venir que de là puisque plus aucune valeur n'est disponible dans mon tableau. Il est ouvert à côté pour visualiser l'avancement dans le code.
Merci grandement pour votre aide
Partager