Bonjour au Forum,
Dans une tentative de création de listes en cascades en adaptant un code, j'ai réussi à constituer la première liste. Les ennuis arrive dès la deuxième liste, qui ne se crée pas. A la ligne 33, le message d'erreur "L'indice n'appartient pas à la sélection" apparaît et me laisse dans l'incompréhension. Un peu d'aide sera la bienvenue.
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 Option Explicit Dim f As Worksheet Private Sub UserForm_Initialize() Dim BD() As Variant Dim Tbl() As Variant Dim d As Variant Dim i As Integer Set f = Sheets("test") Me.NoOrdre = f.Range("A" & Rows.Count).End(xlUp).Row Set f = Sheets("base") BD = f.Range("A2:C" & f.[B65000].End(xlUp).Row).Value Set d = CreateObject("Scripting.Dictionary") For i = 1 To UBound(BD) d(BD(i, 1)) = "" Next i Tbl = d.keys Tri Tbl, LBound(Tbl), UBound(Tbl) Me.Service.List = Tbl End Sub Private Sub Service_click() Dim d As Variant Dim i As Integer Dim BD() As Variant Dim Tbl As Variant Me.Fonction.Clear Set d = CreateObject("Scripting.Dictionary") For i = 1 To UBound(BD) If BD(i, 2) = Me.Service Then d(BD(i, 3)) = "" Next i Tbl = d.keys Tri Tbl, LBound(Tbl), UBound(Tbl) Me.Fonction.List = Tbl End Sub Private Sub Fonction_click() Dim i As Integer Dim BD() As Variant For i = 1 To UBound(BD) If BD(i, 2) = Me.Service And BD(i, 3) = Me.Fonction Then Me.Niveau = BD(i, 1) Next i End Sub
Partager