Bonjour, voici un code que j'utilise dans une macro :

J'exécute la macro tant que la cellule n'est pas vide (do while loop).
Ensuite je vérifie si la valeur de la combobox1 est égale à la cellule recherchée,
si oui je vérifie si la valeur de la combobox2 est égale à tous alors j'ajoute 1 à val.
sinon si la valeur de la combobox2 est égale à la cellule recherchée alors j'ajoute 1 à val.

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
 
 
Private Sub ComboBox1_Change()
 
Dim d As String
Dim d2 As Date
Dim val As Single
 
d = Worksheets("Feuil1").ComboBox2.Value
d2 = Worksheets("Feuil1").ComboBox1.Value
 
Worksheets("copie warehouse").Activate
Sheets("copie warehouse").Range("DR1").Activate
 
Do While ActiveCell(4, 1) <> ""
 
    If ActiveCell(4, 1) = d2 Then
        If d = "Tous" Then
        val = val + 1
        End If
 
        If ActiveCell.Offset(3, -34) = d Then
        val = val + 1
        End If
 
    End If
 ActiveCell.Offset(1, 0).Select
 
Loop
 
Worksheets("Feuil1").Activate
Range("G8").Activate
ActiveCell(1, 1) = val
val = 0
 
End Sub
J'aimerai optimiser ce code parce que j'ai 10-15 codes similaires dans une macro qui va s'effectuer sur les combobox. Dans la base de données il y a 1000 lignes excel.
Est-ce que quelqu'un pourrait m'aider?
Merci.