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

XL 2016 (Dé)sélection à partir d'un inputbox

A1234

XLDnaute Nouveau
Bonjour,

Je réalise une macro et j'aurai besoin de votre aide. J'essaie d'automatiser un filtrage sur la cellule Prev (H1) avec comme critères des numéros de 20 à 44.
J'aimerai garder tous les critères sauf un, celui qui est précisé par l'utilisateur grâce à un inputbox.

J'ai essayé le code suivant mais il bloque sur la partie c....

'a. Sélectionner toutes les versions
ActiveSheet.ListObjects("TableauData").Range.AutoFilter Field:=8
'b.Demander la version qui est à traiter
Dim num As Byte
num = InputBox("Inscrire le numéro de la version à traiter:")
'c. Déselectionner la famille à traiter
ActiveSheet.ListObjects("TableauData").Range.AutoFilter Field:=8, Criteria1 _
:=Array("<> *num* "), Operator:=xlFilterValues


merci d'avance
 

A1234

XLDnaute Nouveau
Je n'arrive pas à faire fonctionner ce code
 

A1234

XLDnaute Nouveau
Bonjour,

Manque t - il une partie sur ce code? En effet, il a l'air de bien fonctionner au niveau des input box mais ne s'applique pas au filtre: la valeur n'est pas décochée

merci d'avance
 

patricktoulon

XLDnaute Barbatruc
re
bonjour
oui bien sur je ne montrais que le principe de gestion d'anulation de l'input
VB:
Option Explicit
Sub FiltrerCol8()
Dim num As Long, dico, aux, x
With Sheets("Feuil1")
   Set dico = CreateObject("scripting.dictionary")
   Set aux = .ListObjects("Tableau1").DataBodyRange.Columns(8)
   For Each x In aux.SpecialCells(xlCellTypeVisible): dico(CStr(x.Value)) = "": Next x
   num = InputBox("Filtres en cours: " & vbLf & Join(dico.keys) & vbLf & "Inscrire le numéro de la version à ignorer:")
   If StrPtr(num) = 0 Then
        MsgBox "filtrage annulé !" 
    Else
   If dico.exists(CStr(num)) Then dico.Remove CStr(CStr(num))
   .ListObjects("Tableau1").Range.AutoFilter Field:=8
   If dico.Count > 0 Then .ListObjects("Tableau1").Range.AutoFilter Field:=8, Criteria1:=dico.keys, Operator:=xlFilterValues
End If
End With
End Sub
 

fanch55

XLDnaute Barbatruc
Après différents tests j'ai compris que ça ne fonctionnait pas si on décoche pas une première cellule avant d'utiliser la formule.
C'est plutôt rassurant: on ne peut pas enlever de filtres s'ils n'existent pas ....

Et il y a aussi une autre limite, si le numéro écrit dans l'input box ne correspond pas au numéro de la BDD la macro tourne dans le vie
Sur ma version, ce n'est pas possible :
 

fanch55

XLDnaute Barbatruc
Mince, j'ai un problème d'affichage chronologique des messages, les posts sont un peu mélangés ou la date n'est pas la bonne ...

La sub a été modifiée pour s'adapter à une table multi-filtres .
Elle est désormais exécutée quand on "double-clique" sur une des entêtes de table
 

Pièces jointes

  • a1234.xlsm
    22.1 KB · Affichages: 0

Discussions similaires

Réponses
2
Affichages
696
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…