Bonjour a vous,

Voilà j'ai un problème avec des combobox qui ont pour but de trier des données. En fait j'ai deux combobox que je renseigne et qui en fonction de ce qui est entré à l'intérieur me trouve des données qui sont stockés dans un tableau. Ce que j'ai fais fonctionne mais j'aimerais bien améliorer mon programme car j'ai plusieurs commandes que j'ai un peu bidouillé. Tout d'abord pour renseigner mes combobox j'ai cliqué sur les propriétés et renseigner le rowsource mais j'aurais aimé pouvoir renseigné à partir des lignes du tableau. Mais je ne sais pas pourquoi ceci n'a pas fonctionné. Pourriez vous me donner le code a utilisé pour renseigner de cette manière?

Ensuite je rencontre un autre problème au niveau de la correpondance des données. En effet dans mon tableau de donnée j'ai des valeurs numériques et j'ai vu que pour qu'une combobox puisse venir trouver des données celles ci devait être en string. Alors j'ai essayé de convertir avec cstring mais çà ne fonctionne pas. J'ai donc trouvé l'astuce suivante. J'ai mis des . à la place des , ce qui donne du texte au lieu de nombre mais c'est quand même pas top.

Voilà si vous aviez des idées de comment faire pour réaliser mes améliorations. Je vous met le code pour que vous puissiez voir ce que çà donne aujourd'hui.

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
66
67
Private Sub CommandButton8_Click()
Dim nomratio As String, nomhubratio As String
Sheet3.Rows("2:70").Delete
 
iL2 = Sheet1.Cells(100, 2).Value
 
n = 2
ratio = ComboBox3.Value
hubratio = ComboBox4.Value
 
If ratio <> "" And hubratio <> "" Then
 
    For i = n To 280
    celluleratio = ("o" & i)
    cellulehubratio = ("m" & i)
 
 
    nomratio = CStr(Sheet5.Range(celluleratio).Value)
    nomhubratio = CStr(Sheet5.Range(cellulehubratio).Value)
 
        If nomratio = ratio Then
        If nomhubratio = hubratio Then
            Sheet5.Cells(i, "m").Copy Sheet3.Cells(iL2, 3)
            Sheet5.Cells(i, "o").Copy Sheet3.Cells(iL2, 4)
            Sheet5.Cells(i, "a").Copy Sheet3.Cells(iL2, 1)
         iL2 = iL2 + 1
        End If
     End If
    Next
 
ElseIf ratio <> "" And hubratio = "" Then
 
    For i = n To 280
        celluleratio = ("o" & i)
 
        nomratio = CStr(Sheet5.Range(celluleratio).Value)
 
         If nomratio = ratio Then
            Sheet5.Cells(i, "m").Copy Sheet3.Cells(iL2, 3)
            Sheet5.Cells(i, "o").Copy Sheet3.Cells(iL2, 4)
            Sheet5.Cells(i, "a").Copy Sheet3.Cells(iL2, 1)
             iL2 = iL2 + 1
         End If
    Next
 
ElseIf ratio = "" And hubratio <> "" Then
 
    For i = n To 280
           cellulehubratio = ("m" & i)
 
             nomhubratio = CStr(Sheet5.Range(cellulehubratio).Value)
 
            If nomhubratio = hubratio Then
            Sheet5.Cells(i, "m").Copy Sheet3.Cells(iL2, 3)
            Sheet5.Cells(i, "o").Copy Sheet3.Cells(iL2, 4)
            Sheet5.Cells(i, "a").Copy Sheet3.Cells(iL2, 1)
                iL2 = iL2 + 1
            End If
    Next
 
End If
 
ComboBox3.Value = Empty
ComboBox4.Value = Empty
Sheet3.Select
 
End Sub

Merci à vous!