Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

recherche selon combobox

  • Initiateur de la discussion Initiateur de la discussion matrix
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

matrix

XLDnaute Occasionnel
Bonjour a tous,

J'ai commencé une macro qui fonctionne à moitié en ce moment;

Code:
Dim i As Long, j As Long
 
        Dim cumlig As Long
 
        cumlig = 5
        For i = 2 To Sheets("schd_detail").Range("A" & Cells.Rows.Count).End(xlUp).Row
 
            If Sheets("schd_detail").Range("c" & i).Value = ComboBox1 And Sheets("schd_detail").Range("h" & i) <= ComboBox2 Then
 
 
                Sheets("schd_detail").Range("J" & i) = 1
 
 
                cumlig = cumlig + 1
 
            End If
 
        Next i

Le combobox1 fait référence à la colonne C, le combobox 2 fait référence à la colonne H et le combobox 3 fait référence aussi à la colonne H

Maintenant, la macro doit chercher la valeur du combobox 1 dans la colonne C et si l'heure inscrite dans le combobox2 est égal ou superieur à la valeur de la colonne H de la même ligne ainsi que le combobox3 qui est inférieur ou égal à la colonne H de la même ligne, il doit mettre un 1 dans la colonne J.

Comment faire s.v.p

Merci pour votre aide.
 

Pièces jointes

Re : recherche selon combobox

Bonjour Matrix,

d'abord, mettre les combo 2 et 3 au format heure:

Code:
Private Sub UserForm_Initialize()
With Sheets("DB")
For i = 2 To .Range("a65000").End(xlUp).Row
If .Cells(i, 1) <> .Cells(i - 1, 3) Then
ComboBox1.AddItem .Cells(i, 1).Value
End If
Next
End With


With Sheets("DB")
For i = 2 To .Range("c65000").End(xlUp).Row
If .Cells(i, 3) <> .Cells(i - 1, 3) Then
[COLOR=Blue][B]ComboBox2.AddItem Format(.Cells(i, 3).Value, "hh:mm")[/B][/COLOR]
End If
Next
End With


With Sheets("DB")
For i = 2 To .Range("c65000").End(xlUp).Row
If .Cells(i, 3) <> .Cells(i - 1, 3) Then
[B][COLOR=Blue]ComboBox3.AddItem Format(.Cells(i, 3).Value, "hh:mm")[/COLOR][/B]
End If
Next
End With

End Sub
Et pour ce que tu demandes:

Code:
Private Sub CommandButton1_Click()
 Dim Trouve As Range, FirstAddress As String

        With Sheets("schd_detail")
            Set Trouve = .Columns("C").Find(ComboBox1.Value, LookIn:=xlValues, lookat:=xlWhole)
            If Not Trouve Is Nothing Then
                FirstAddress = Trouve.Address
                Do
                    If .Range("h" & Trouve.Row).Text >= ComboBox2.Value _
                    And .Range("h" & Trouve.Row).Text <= ComboBox3.Value Then
                      Sheets("schd_detail").Range("J" & Trouve.Row) = 1
                    End If
                    Set Trouve = .Columns("C").FindNext(Trouve)
                Loop While Not Trouve Is Nothing And Trouve.Address <> FirstAddress
            End If
        End With

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
187
Réponses
8
Affichages
402
Réponses
3
Affichages
334
Réponses
15
Affichages
830
Réponses
5
Affichages
421
Réponses
5
Affichages
932
Réponses
2
Affichages
416
Réponses
2
Affichages
380
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…