Bonjour,
Je viens vous demander de l'aide car après plusieurs jours de recherche sur internet je ne trouve pas ma solution.
Comme beaucoup de monde, je débute en VBA et j'apprends sur le tas.
J'ai créé un formulaire qui m'affiche les données selon un critère de recherche.
Quand il s'agit d'un texte cela fonctionne très bien avec les "*"
Cependant, lorsque je saisie une donnée chiffrée (exemple date ou un montant) ma recherche ne fonctionne pas
J'ai une combobox avec une liste définie (semaine - date - Description - montant - statut - Banque) qui fonctionne très bien si je saisie un texte dans la Textbox
Mais quand je selectionne "semaine", "date" ou "montant" dans ma combobox, et que je saisie une valeur chiffrée dans ma Textbox ALORS aucune donnée n’apparaît
Je vous enverrai bien le fichier excel mais il est extrêmement lourd.
Je vous envoie donc la partie du code que j'ai pu faire.
Merci par avance pour votre aide
-------------------------------------------------------------------------------------------------------------------------------------------------
Private Sub BtnRecherche_Click()
Application.DisplayAlerts = False
Dim PlgF, i%
If CboBox1.ListIndex > -1 And TxtCherche.Value <> "" Then
With [Criteres]
.Cells(1, 1) = CboBox1.Value
.Cells(2, 1) = "*" & TxtCherche.Value & "*"
End With
FiltreData
With [Décaler_Données]
If .Rows.Count > 1 Then
PlgF = .Offset(1).Resize(.Rows.Count - 1).Value
Else
MsgBox "Aucune correspondance trouvée", vbInformation, "FiltreData"
End If
End With
With ListBox_Recherche
If UBound(PlgF) > 1 Then
.List = PlgF
Else
.AddItem PlgF(1, 1)
For i = 1 To 4
.List(0, i) = PlgF(1, i + 1)
Next i
End If
End With
Else
MsgBox "Définir les critères de filtrage !", vbExclamation, "FiltreData"
End If
Application.DisplayAlerts = False
End Sub
----------------------------------------------------------------------------------------------------------------
Private Sub CboBox1_Change()
Select Case CboBox1.Value
Case Is = "Date"
TxtCherche.Value = CDate(TxtCherche.value)
Case Is = "Montant"
TxtCherche.Value = Format(TxtCherche.Value, "### ### ##0.00")
End Select
End Sub
Je viens vous demander de l'aide car après plusieurs jours de recherche sur internet je ne trouve pas ma solution.
Comme beaucoup de monde, je débute en VBA et j'apprends sur le tas.
J'ai créé un formulaire qui m'affiche les données selon un critère de recherche.
Quand il s'agit d'un texte cela fonctionne très bien avec les "*"
Cependant, lorsque je saisie une donnée chiffrée (exemple date ou un montant) ma recherche ne fonctionne pas
J'ai une combobox avec une liste définie (semaine - date - Description - montant - statut - Banque) qui fonctionne très bien si je saisie un texte dans la Textbox
Mais quand je selectionne "semaine", "date" ou "montant" dans ma combobox, et que je saisie une valeur chiffrée dans ma Textbox ALORS aucune donnée n’apparaît
Je vous enverrai bien le fichier excel mais il est extrêmement lourd.
Je vous envoie donc la partie du code que j'ai pu faire.
Merci par avance pour votre aide
-------------------------------------------------------------------------------------------------------------------------------------------------
Private Sub BtnRecherche_Click()
Application.DisplayAlerts = False
Dim PlgF, i%
If CboBox1.ListIndex > -1 And TxtCherche.Value <> "" Then
With [Criteres]
.Cells(1, 1) = CboBox1.Value
.Cells(2, 1) = "*" & TxtCherche.Value & "*"
End With
FiltreData
With [Décaler_Données]
If .Rows.Count > 1 Then
PlgF = .Offset(1).Resize(.Rows.Count - 1).Value
Else
MsgBox "Aucune correspondance trouvée", vbInformation, "FiltreData"
End If
End With
With ListBox_Recherche
If UBound(PlgF) > 1 Then
.List = PlgF
Else
.AddItem PlgF(1, 1)
For i = 1 To 4
.List(0, i) = PlgF(1, i + 1)
Next i
End If
End With
Else
MsgBox "Définir les critères de filtrage !", vbExclamation, "FiltreData"
End If
Application.DisplayAlerts = False
End Sub
----------------------------------------------------------------------------------------------------------------
Private Sub CboBox1_Change()
Select Case CboBox1.Value
Case Is = "Date"
TxtCherche.Value = CDate(TxtCherche.value)
Case Is = "Montant"
TxtCherche.Value = Format(TxtCherche.Value, "### ### ##0.00")
End Select
End Sub