XL 2013 (Résolu par Job75) Masquer flèches filtre

ismailo

XLDnaute Nouveau
Bonjour à tous,
dans le tableau ci-joint j'ai un code qui me permet de faire une recherche sur un TEXTBOX en utilisant le filtre automatique
ma question : est ce que c'est possible de modifier ma macro pour masquer les flèches de filtre de mon tableau qui sont sur les cellules A7 et B7

Cordialement
 

Pièces jointes

  • isma.xlsm
    21.7 KB · Affichages: 59

PMO2

XLDnaute Accro
Bonjour,
Essayez avec votre code modifié
VB:
Const CIBLE As String = "A7"

Private Sub TextBox1_Change()
Range(CIBLE).AutoFilter field:=1, Criteria1:="=*" & TextBox1.Text & "*", Operator:=xlAnd, VisibleDropDown:=False
End Sub

Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox1.Text = ""
    Selection.AutoFilter field:=1
End Sub

Private Sub TextBox2_Change()
Range(CIBLE).AutoFilter field:=2, Criteria1:="=*" & TextBox2.Text & "*", Operator:=xlAnd, VisibleDropDown:=False
End Sub

Private Sub TextBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox2.Text = ""
    Selection.AutoFilter field:=2
End Sub

Salut Doublezéro !!!
 

ismailo

XLDnaute Nouveau
Bonsoir doublezero, PMO2
je reviens vers vous parce que j'ai essayé d'appliquer le code de PMO2 sur mon fichier ci-joint qui contient déjà un autre code dans la même feuille mais ca beug
pouvez vous me donnez un cou de main s'il vous plait ?
 

Pièces jointes

  • ISMA1.xlsm
    29.6 KB · Affichages: 61

ismailo

XLDnaute Nouveau
Bonjour Job, PMO2, Doublezero, le forum
comme vous pouvez constater sur le fichier ci-joint j'ai appliqué ce que vous avez dit
le bug à disparu mais les flèches ont disparu juste des colonnes E et F les autres colonnes du tableau non
le 2ème problème c'est que le premier textbox en mettant des données de la colonne E pour les filtrer ne donne aucun résultat par contre le 2ème texbox fonctionne
 

Pièces jointes

  • ISMA2.xlsm
    32.2 KB · Affichages: 60

job75

XLDnaute Barbatruc
Re,

Avec le filtre automatique on ne peut pas faire de recherche partielle sur les nombres.

Ecrivez donc dans TextBox1_Change :
Code:
Range(CIBLE).AutoFilter field:=5, Criteria1:=TextBox1, VisibleDropDown:=False
Et si vous ne voulez aucune flèche utilisez le filtre avancé, qui en plus permettra les recherches partielles sur les nombres.

A+
 

job75

XLDnaute Barbatruc
Re,

Le code pour le filtre avancé :
Code:
Private Sub TextBox1_Change()
[AE3] = "=SEARCH(" & TextBox1 & ",E3)" 'recherche de nombre
[A2].CurrentRegion.AdvancedFilter xlFilterInPlace, [AE2:AE3]
[AE3] = ""
End Sub

Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1 = ""
End Sub

Private Sub TextBox2_Change()
[AE3] = "=SEARCH(""" & TextBox2 & """,F3)" 'recherche de texte
[A2].CurrentRegion.AdvancedFilter xlFilterInPlace, [AE2:AE3]
[AE3] = ""
End Sub

Private Sub TextBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
TextBox2 = ""
End Sub
A+
 

ismailo

XLDnaute Nouveau
Re-bonjour Job,
Merci infiniment pour le code c'est parfait, vous avez bien compris me demande
j'ai une petite remarque je ne sais si c'est possible de la rectifier ou non, concernant la suppression du filtre pour retourner à l'état initial
par exemple en tapant deux chiffre dans textbox1 et après avoir obtenu la recherche souhaité une fois je fais doubleclick pour afficher toute la liste cela prend des secondes surtout que j'ai un tableau avec plusieurs noms, comme vous pouvez voir ci-joint

Cordialement
 

Pièces jointes

  • ISMA3.xlsm
    41.8 KB · Affichages: 68

job75

XLDnaute Barbatruc
Re,

Pour accélérer l'affichage par double-clic :
Code:
Option Explicit
Dim flag As Boolean 'mémorise la variable

Private Sub TextBox1_Change()
If flag Then Exit Sub
[AE3] = "=SEARCH(" & TextBox1 & ",E3)" 'recherche de nombre
[A2].CurrentRegion.AdvancedFilter xlFilterInPlace, [AE2:AE3]
[AE3] = ""
End Sub

Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
flag = True: TextBox1 = "": flag = False
If Me.FilterMode Then Me.ShowAllData
End Sub

Private Sub TextBox2_Change()
If flag Then Exit Sub
[AE3] = "=SEARCH(""" & TextBox2 & """,F3)" 'recherche de texte
[A2].CurrentRegion.AdvancedFilter xlFilterInPlace, [AE2:AE3]
[AE3] = ""
End Sub

Private Sub TextBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
flag = True: TextBox2 = "": flag = False
If Me.FilterMode Then Me.ShowAllData
End Sub
A+
 

ismailo

XLDnaute Nouveau
je vous remercie infiniment, vous êtes vraiment un expert
en testant le code j'ai constaté deux petites remarques dont je ne sais pas si vous l'avez vu ou non.

dans le 1er textbox qui concerne les nombres si je mets un trait du genre - ou un point . le code me renvoit une erreur..est ce que c'est possible d'éviter cette erreur ??

la deuxième remarque c'est que l'affichage est accéléré par le double click mais par exemple en supprimant lettre par lettre avec le clavier un nom qu'on à écrit dans le textbox l'affichage prend beaucoup de temps
 

Discussions similaires

Réponses
6
Affichages
365

Statistiques des forums

Discussions
312 389
Messages
2 087 898
Membres
103 675
dernier inscrit
axona