Bonjour tout le monde,
Afin de remplir mes combobox (sans doublon), j'ai utilisé la structure comme dans le FAQ :
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 Private Sub ComboBox2_Change() Dim Cellab As Range Dim Tableauab() Dim TempTabab As Variant Dim iab As Integer, jaa As Integer Dim boolVerifab As Boolean If ComboBox1.Value = "" Then ComboBox2.Visible = False ComboBox2.Enabled = False Feuil1.Range("B21") = "" Else ComboBox2.Visible = True ComboBox2.Enabled = True Feuil1.Range("B21") = "Sélectionner la ville" ReDim Tableauab(1 To 1) Tableauab(1) = Cells(1, 1) kab = 0 If ComboBox1.Value = "France" Then 'Boucle sur les données de la colonne C, dans la Feuil1 For Each Cellac In Feuil4.Range("C2:C364") boolVerifac = False 'Vérifie si le contenu de la cellule existe déjà dans le tableau For iac = 1 To UBound(Tableauac) 'Si la donnée existe déjà dans le tableau If Tableauac(iac) = Cellac Then boolVerifac = True Exit For End If Next iac 'Si la donnée n'existe pas dans le tableau, on augmente la taille du tableau 'et on ajoute la donnée. If boolVerifac = False Then ReDim Preserve Tableauac(1 To UBound(Tableauac) + 1) Tableauac(UBound(Tableauac)) = Cellac End If 'Tri le contenu du tableau par ordre croissant. For iac = 1 To UBound(Tableauac) For jac = 1 To UBound(Tableauac) If Tableauac(iac) < Tableauac(jac) Then TempTabac = Tableauac(iac) Tableauac(iac) = Tableauab(jac) Tableauac(jac) = TempTabac End If Next jac Next iac Next Cellac End If 'Alimente le ComboBox ComboBox3.List = Tableauab End Sub
la présence (ou l'absence) de la valeur dans la Combobox2 est conditionnée par la valeur prise par la Combobox1. La combobox1 étant remplit par les valeur se trouvant sur la colonne B
Le problème est que ma combobox2 est conditionnée par la Combobox1 et que cette dernière peut acquérir une centaine de valeurs possibles.
Comment puis je optimiser cet algorithme tout en évitant que ce dernier rame à mort lors de l'application?
Partager