J'essaie de créer un bouton de recherche qui affichera les informations sur la zone de liste. Les données que j'essaie de rechercher sont par nom et par période. ou il peut aussi par nom ou par date seulement. J'ai déjà un code mais il semble qu'il y ait quelque chose qui ne va pas, parce que chaque fois que j'ai essayé de chercher, il affiche tout le nom mais la date est correcte.Recherche par zone de texte et affichage dans la zone de liste
est Ci-dessous le code:
Private Sub cmdFind_Click()
Dim DateRange As Range, rCl As Range, rng As Range, Dn As Range
Dim Date1 As Date, Date2 As Date
Dim iX As Integer
Dim strName As String
Set DateRange = Sheet2.Range("A1").CurrentRegion.Columns(4)
Set rng = Sheet2.Range("A1").CurrentRegion.Columns(4)
Me.ListBox1.Clear
strName = Me.txtName.Text
Date1 = CDate(Me.txtDate.Value)
Date2 = CDate(Me.EndDate.Value)
For Each rCl In DateRange.Cells
For Each Dn In rng.Cells
If rCl.Value >= Date1 And rCl.Value <= Date2 And strName Then
ElseIf Dn.Value = strName Then
With Me.ListBox1
.AddItem Sheet2.Cells(rCl.Row, 1)
.List(.ListCount - 1, 1) = Sheet2.Cells(rCl.Row, 2)
.List(.ListCount - 1, 2) = Sheet2.Cells(rCl.Row, 3)
.List(.ListCount - 1, 3) = Sheet2.Cells(rCl.Row, 4)
.List(.ListCount - 1, 4) = Sheet2.Cells(rCl.Row, 5)
.List(.ListCount - 1, 5) = Format(Sheet2.Cells(rCl.Row, 6), "hh:mm:ss")
End With
End If
Next Dn
Next rCl
End Sub
Vous avez votre condition 'Si rCl.Value> = Date1 Et rCl.Value <= Date2 Et Dn.Value = strName Puis' et ne pas faire les actions, et quand le nom correspond vous ajoutez les oses, de sorte que vous Ajoutez tout. Vous devez supprimer cette ligne 'ElseIf Dn.Value = strName Then' – danieltakeshi
Salut, j'ai déjà essayé de supprimer l'instruction ElseIf Dn.Value = strName Ensuite - il affiche toujours tout et puis par exemple je ne fais que filtrer en utilisant le nom Je reçois une erreur pour le cdate car il n'y a pas de valeur. –
Vous parcourez deux fois la même plage 'For Each Dn In rng.Cells' et' Pour chaque rCl In DateRange.Cells' car DataRange et rng sont les mêmes. Bien que cela ne résoudra pas le problème. – danieltakeshi