Saisie semi-automatique avec filtrage

  • Initiateur de la discussion Initiateur de la discussion C60a
  • 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 !

C60a

XLDnaute Junior
Bonjour à tous,

J'aimerais dans la ligne A2:G2 saisir des mots qui déclenchent successivement un filtrage automatique sur chaque colonne en cours,

Si je saisie en A2, un filtre automatique est appliqué en colonne A selon les lettres saisie en A2.

Si je saisie en B2, un filtre est appliqué sur la colonne B, sur le résultat du premier filtre, selon la valeur saisie en B2.

En C3, un filtre est appliqué sur la colonne C, sur le résultat du deuxième filtre, selon la valeur saisie en C3.

Et ainsi de suite.

A la fin, si tous les valeurs saisies ont 0 enregistrements trouvés (filtrés), alors cette ligne A2:G2 est ajoutée au tableau de données A4:G6.

Merci d’avance,
 

Pièces jointes

Vérifie que l date est bien en format date dans les données
Lorsque l'on prend la date d'un textbox il faut faire Cdate(textbox1) pour convertir en date
Chose qui n'était pas fait avant.
Les chiffres doivent être en format Standard et les dates en format date
Bruno
 
Les données en colonne E sont bien en format date.

j'ai essayé ce test pour obtenir un résultat, mais ça n'a pas encore fonctionner :

VB:
Private Sub TextBox5_Change()
    If TextBox5 = "" Then ActiveSheet.Range("$A$4:$G$4").AutoFilter Field:=5: Exit Sub
    On Error Resume Next
    If TextBox5.TextLength = 10 Then
        ActiveSheet.Range("$A$4:$G$4").AutoFilter Field:=5, Criteria1:="=" & CDate(TextBox5.Value)
        If Err = 0 Then verif_copy
    End If
End Sub

Mais lorsque j'applique un filtre manuel et choisir la date depuis le calendrier proposé dans "égal à", la ligne contenant cette date "27/11/2016" est bien visible :

VB:
Sub Macro1()
'
' Macro1 Macro
'

'
    ActiveSheet.Range("$A$4:$G$7").AutoFilter Field:=5, Criteria1:= _
                                              "=27/11/2016", Operator:=xlAnd
End Sub
 
Dernière édition:
Bonjour youki,

Pour le moment, juste un truc que je ne peux l'expliqué :

Quand je tape une date directement dans le TextBox5 (Colonne E) sans passer par les autres TextBox, le filtre appliqué ne retourne rien, pourtant la date saisie s'y trouve bien dans le tableau des données !?

Je continu les tests !

EDIT :
Le filtre sur date ne fonctionne pas à tout les coups.

Je teste maintenant sur une autre machine, et la saisie n'est pas reconnu comme date dans la colonne E (TextBox5)... Bizzare !

Apres execution du code de la macro en haut :

VB:
Sub mydate()
Columns("E:E").NumberFormat = "dd/mm/yyyy"
For lig = 5 To [E65000].End(3).Row
Cells(lig, 5) = CDate(Cells(lig, 5))
Next
End Sub

La saisie est reconnu comme date ?!
 
Dernière édition:
- 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
4
Affichages
81
  • Résolu(e)
Microsoft 365 DATEDIF
Réponses
11
Affichages
184
Réponses
1
Affichages
493
Réponses
5
Affichages
350
Réponses
10
Affichages
577
Retour