Saisie intuitive et filtrage auto sur colonne

Le
Apitos
Bonjour à tous,

Peut-on réaliser cela :

Lors de la saisie dans la cellule A2, un filtre automatique est appliquer s=
ur la colonne A selon ce qui est écrit en A2.

La même opération sera exécutée sur les colonnes B, C e=
t D selon la saisie en B2, C2 et D2.

Merci d’avance.
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
?K?
Le #26420227
Hello
D'après Apitos
Peut-on réaliser cela
Lors de la saisie dans la cellule A2, un filtre automatique est appliquer sur
la colonne A selon ce qui est écrit en A2.
La même opération sera exécutée sur les colonnes B, C et D selon la saisie en
B2, C2 et D2.

on peut :
mettre ce type de code dans la feuille de calcul concernée
----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Range("$a$4:$d$50").AutoFilter Field:=1, Criteria1:="="
& Range("a2").Value & "*", _
Operator:=xlAnd
ActiveSheet.Range("$a$4:$c$50").AutoFilter Field:=2, Criteria1:="=" &
Range("b2").Value & "*", _
Operator:=xlAnd
ActiveSheet.Range("$a$4:$c$50").AutoFilter Field:=3, Criteria1:=">" &
Range("c2").Value, _
Operator:=xlAnd
End Sub
--------------------------
les deux premiers utilisent "commence par" et le 3ème "plus grand que"
flemme de mettre le quatrième ;-)
en a4:d4 on a les en têtes de colonne
attention laisse a3:d3 vide sinon le filtre a tendance à s'emmêler un
peu
et si tu n'arrives pas à trouver la syntaxe de ton filtre, tu le crées
en enregistrement de macro et tu adaptes ;-)
cdlt
--
-
?K?
Le #26420232
D'après ?K?
Hello
D'après Apitos
Peut-on réaliser cela Lors de la saisie dans la cellule A2, un filtre
automatique est appliquer sur la colonne A selon ce qui est écrit en A2.
La même opération sera exécutée sur les colonnes B, C et D selon la saisie
en B2, C2 et D2.

on peut :

ceoendant les filtres cachent des lignes entières donc les filtres des
4 colonnes se surajoutent ce n'est pas indépendant
cdlt
--
-
Apitos
Le #26420233
Bonjour ?K?,
Le filtre n'est pas appliqué en même temps de la saisie des carac tères en A2.
Je crois qu'il n'y a pas d’événement Onchage des cellules ?
?K?
Le #26420239
D'après Apitos
Bonjour ?K?,
Le filtre n'est pas appliqué en même temps de la saisie des caractères en A2.
Je crois qu'il n'y a pas d’événement Onchage des cellules ?

il est appliqué dès qu'on a validé la saisie en a2
(ce n'est pas du javascript)
cdlt
--
-
?K?
Le #26420258
Bonjour
D'après Apitos
Bonjour ?K?,
Le filtre n'est pas appliqué en même temps de la saisie des caractères en A2.
Je crois qu'il n'y a pas d’événement Onchage des cellules ?

en fait créer une zone de texte de formulaire (textbox) en haut de
chaque colonne fera ce que tu souhaites
tu mets la propriété linkedcell à a2 pour textbox1 etc. comme ça tu
peux récupérer les valeurs sans changer le reste de ta feuille
avec ce genre de code (dans la feuille)
je suppose que tes en-têtes de colonne sont en a3:d3
-----------------
Private Sub TextBox1_Change()
ActiveSheet.Range("$a$3:$d$100").AutoFilter Field:=1, Criteria1:="=" &
TextBox1.Value & "*", _
Operator:=xlAnd
End Sub
Private Sub TextBox1_Change()
ActiveSheet.Range("$b$3:$d$100").AutoFilter Field:=2, Criteria1:="=" &
TextBox1.Value & "*", _
Operator:=xlAnd
End Sub
etc.
---------------------------------
ci-dessus les filtres de colonnes se rajoutent
si tu mets aussi
--------------------
Private Sub TextBox1_LostFocus()
Range("a3:d3").AutoFilter
End Sub
Private Sub TextBox2_LostFocus()
Range("D6:G6").AutoFilter
End Sub
-----------------
quand tu changes de colonne le filtre se réinitialise donc ça filtre
successivementcolonne par colonne
à toi de voir
cdlt
--
-
?K?
Le #26420267
(supersedes Bonjour
D'après Apitos
Bonjour ?K?,
Le filtre n'est pas appliqué en même temps de la saisie des caractères en
A2.
Je crois qu'il n'y a pas d’événement Onchage des cellules ?

en fait créer une zone de texte de formulaire (textbox) en haut de
chaque colonne fera ce que tu souhaites
tu mets la propriété linkedcell à a2 pour textbox1 etc. comme ça tu
peux récupérer les valeurs sans changer le reste de ta feuille, tu peux
mettre ta zone de texte au dessus de la cellule
avec ce genre de code (dans la feuille)
je suppose que tes en-têtes de colonne sont en a3:d3 (tu peux masquer
la ligne ça ne change rien)
par défaut les filtres de colonnes se rajoutent
-----------------
Private Sub TextBox1_Change()
ActiveSheet.Range("$a$3:$d$100").AutoFilter Field:=1, Criteria1:="=" &
TextBox1.Value & "*", _
Operator:=xlAnd
End Sub
Private Sub TextBox2_Change()
ActiveSheet.Range("$b$3:$d$100").AutoFilter Field:=2, Criteria1:="=" &
TextBox1.Value & "*", _
Operator:=xlAnd
End Sub
etc.
---------------------------------
si tu mets aussi
--------------------
Private Sub TextBox1_LostFocus()
Range("a3:d3").AutoFilter
End Sub
Private Sub TextBox2_LostFocus()
Range("D6:G6").AutoFilter
End Sub
-----------------
quand tu changes de colonne le filtre se réinitialise donc ça filtre
successivement colonne par colonne
à toi de voir
cdlt
--
-
?K?
Le #26420263
(supersedes (supersedes Bonjour
D'après Apitos
Bonjour ?K?,
Le filtre n'est pas appliqué en même temps de la saisie des caractères en
A2.
Je crois qu'il n'y a pas d’événement Onchage des cellules ?

en fait créer une zone de texte de formulaire (textbox) en haut de
chaque colonne fera ce que tu souhaites
tu mets la propriété linkedcell à a2 pour textbox1 etc. comme ça tu
peux récupérer les valeurs sans changer le reste de ta feuille, tu peux
mettre ta zone de texte au dessus de la cellule
avec ce genre de code (dans la feuille)
je suppose que tes en-têtes de colonne sont en a3:d3 (tu peux masquer
la ligne ça ne change rien)
par défaut les filtres de colonnes se rajoutent
-----------------
Private Sub TextBox1_Change()
ActiveSheet.Range("$a$3:$d$100").AutoFilter Field:=1, Criteria1:="=" &
TextBox1.Value & "*", _
Operator:=xlAnd
End Sub
Private Sub TextBox2_Change()
ActiveSheet.Range("$b$3:$d$100").AutoFilter Field:=2, Criteria1:="=" &
TextBox1.Value & "*", _
Operator:=xlAnd
End Sub
etc.
---------------------------------
si tu mets aussi
--------------------
Private Sub TextBox1_LostFocus()
Range("a3:d3").AutoFilter
End Sub
Private Sub TextBox2_LostFocus()
Range("a3:d3").AutoFilter
End Sub
-----------------
quand tu changes de colonne le filtre se réinitialise donc ça filtre
successivement colonne par colonne
à toi de voir
cdlt
--
-
Apitos
Le #26420300
J'ai essayé avec cet exemple :
http://www.cjoint.com/c/FLmqtkqKdKM
Mais quand je mets un "2" dans la première TextBox, je n’obti ens aucun résultat (visible au mois) et quand j'efface ce "2" le filtr e reste toujours figé ...?
?K?
Le #26420335
Bonjour
D'après Apitos
J'ai essayé avec cet exemple :
http://www.cjoint.com/c/FLmqtkqKdKM
Mais quand je mets un "2" dans la première TextBox, je n’obtiens aucun
résultat (visible au mois) et quand j'efface ce "2" le filtre reste toujours
figé ...?

d'une part si on veut que ça fonctionne avec * il faut mettre les
cellules de la colonne A en mode texte
sinon on ne peut utiliser que > < ou = (nombres !)
ensuite trop de copier-coller lol
Private Sub TextBox1_Change()
ActiveSheet.Range("$A$4:$G$4").AutoFilter Field:=1, Criteria1:="=" &
TextBox1.Value & "*"
End Sub
le premier ça va
Private Sub TextBox2_Change()
ActiveSheet.Range("$A$4:$G$4").AutoFilter Field:=2, Criteria1:="=" &
TextBox2.Value & "*", Operator:=xlAnd
End Sub
mais pour le deuxième et les suivants il faut changer àchaque fois le
champ
Field:=2
ET le nom de la zone de texte
TextBox2.Value
tel quel tous les filtres vont s'ajouetr
si tu veux qu'ils soient indépendants ajouter des
Private Sub TextBox1_LostFocus()
Range("a4:g4").AutoFilter
End Sub
Private Sub TextBox2_LostFocus()
Range("a4:g4").AutoFilter
End Sub
cdlt
--
-
Apitos
Le #26420408
Bonjour,
Comme je cherche par l’utilisation du filtre à ne pas accepter des valeurs existantes, alors la ligne "A2:G2" n’est pas ajoutà ©e dans le tableau en dessous que si elle ne contient pas de doublons.
Voila ou j’en suis avec le code :
En colonne C quand je saisi "1000", le filtre ne trouve pas cette valeur da ns le tableau, pourtant j’ai bien utilisé un "=" dans le cri tère de filtrage.
Le même critère est utilisé pour filtrer les dates.
http://www.cjoint.com/c/FLntmYIeXbq
Publicité
Poster une réponse
Anonyme