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

Saisie semi-automatique avec filtrage

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

  • SaisieFiltrageAuto_v001.xlsm
    27.9 KB · Affichages: 56

youky(BJ)

XLDnaute Barbatruc
Bonjour un peu tardif, mais c'est mieux que rien.
Donc voici une version
J'ai mis un encart explication dans ce fichier
Il faut quitter le textbox7 pour voir si copy
Bruno
 

Pièces jointes

  • SaisieFiltrageAuto_v001.xlsm
    32.5 KB · Affichages: 51

youky(BJ)

XLDnaute Barbatruc
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
 

C60a

XLDnaute Junior
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:

youky(BJ)

XLDnaute Barbatruc
RE,
copy cette macro dans module1
fait exécuter en macro
Ensuite efface la macro du module1
Code:
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
 

3xceln4ute

XLDnaute Occasionnel
Bonjour tout le monde,

J'ai vu le document de la saisie semi-auto et il s’avérerait qu'il répondrait parfaitement à mon besoin.

Le but est d'avoir une recherche pour toutes les colonnes. Ci-joint le fichier.

Merci d'avance.
 

Pièces jointes

  • Projet recherche Classeur.xlsm
    236.7 KB · Affichages: 48

youky(BJ)

XLDnaute Barbatruc
Je poste le fichier que je viens de terminer pour Subirubi,
J'ai mis un userform en cliquant en A1
Vérifier que les dates sont bien filtrées chez toi
Bruno
 

Pièces jointes

  • Projet recherche Classeur.xlsm
    213.2 KB · Affichages: 53

youky(BJ)

XLDnaute Barbatruc
C60a Bonjour
Voici le fichier mis en format text sauf dates
Attention les chiffres inscrits restent du texte et ne peuvent être additionnés ou triés.
A toi de voir
Bruno
 

Pièces jointes

  • SaisieFiltrageAuto_v003.xlsm
    33.1 KB · Affichages: 41

C60a

XLDnaute Junior
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:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…