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

XL 2016 Filtrer un tableau suivant la valeur texte d'une cellule

Nicolaroute

XLDnaute Nouveau
Bonjour à tous, toutes..
Aujourd'hui, je bloque sur le filtre d'un tableau " Tableau1" qui se trouve en C1:E1500. feuille "Articles".
Colonne cherchée la "D"
Ma cellule text est en A1, qui est le renvoi de ma combobox: Re_Four.
Par se biais je voudrais filtrer mes articles du fournisseur choisi et renvoyer les valeurs triées dans ma combobox , Liste_ref.
je bloque pour le moment sur le filtrage.
Voici mon code:

Private Sub Ref_Four_Change()
If Ref_Four <> "" Then
Sheets("Articles").Range("A1").Value = Ref_Four.Text
Sheets("Articles").Range("Tableau1").AutoFilter Field:=2, Criteria1:="*""*" & Range("A1").Value, _
Operator:=xlFilterValues
End If
End Sub

La formule n'est pas bonne !!!
Merci pour votre aide .
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Nicolaroute,
Il vous faut initialiser Ref_Four. D'ailleurs si vous executez en pas à pas votre macro vous verrez que Ref_Four est vide.
Ref_Four tel qu'écrit est une variable VBA pas une cellule.
Ajouter après sub : Ref_Four = Range("A1").Value
 

Nicolaroute

XLDnaute Nouveau
Ok, merci. mais Problème!!
Au Départ, je sélectionne dans l' userform mon fournisseur dans la combobobox ref_Four, ce qui envoie sur la feuille articles sa valeur en A1.
Après, je bloque pour Filtrer les articles de ce fournisseur, que je retrouverai dans ma combobobox liste_ref.
et j'ai bien la valeur en A1!
J’espère que mon propos est c'est plus clair??
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
... non pas vraiment. A moi aussi d'essayer d'être plus clair :
Sauf si Ref_Four est déclarée en Public et initialisée par votre Combox, alors le code tel que vous l'avez présentez ne peut pas marcher car cette variable n'est pas initialisée.
Mais si cette variable est initialisée autre part, donnez nous un peu plus d'infos, ou mieux un fichier simplifié.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Comme dit, une possibilité est d'ajouter après sub : Ref_Four = Range("A1").Value si c'est une variable locale.
Si c'est utilisé par plusieurs modules, vous pouvez la rendre public, dans ce cas Avant sub vous ajoutez Public Ref_Four , vous pouvez aussi ajouter son type interder, variant long, string .... tout dépends de la variable.
Si elle est déclarée comme public il faut qu'elle soit initialisée par un autre module avant d'arriver à celui ci, sinon vous aurez le même problème.
 

Nicolaroute

XLDnaute Nouveau
Bonjour, apres plusieurs essais, j'ai revu ma copie.
En fait pour un fournisseur, il me vends des articles de 4 autres noms.
j'ai donc ajouté des chekcbox pour trier mes articles à la valeur des captions de chekcbox..
Maintenant c'est bon!! problème résolu!! Merci.
 

Discussions similaires

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