Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment créer un userform ce tri sélectif?

45 réponses
Avatar
gloub
Bonjour,
Je suis en train de ranger mon grenier et voudrait retrouver mes
affaires plus rapidement que par le passé. J’ai pensé enregistrer tous
mes objets, leur attribuer un numéro et les mettre dans des bas de
rangement numérotés.
Pour l’instant ma base de données fonctionne grâce au filtre automatique
, mais pourriez vous m’aider à l’utiliser de façon plus conviviale ?
Je travaille sur 4 colonnes
A1=ordre d’enregistrement ; B1= Descriptif de mes articles ; C1= n° de
référence ; d1= n° de bac de rangement
J’aimerais bien créer un userform avec un champ dans lequel je taperais
un élément d’une ligne à chercher et un autre champ qui récupérerait
toute les lignes contenant cet élément.

Par exemple pour chercher un tournevis avec le filtre automatique, je
choisis l’option personnalisé et je tape « tour* » et toutes les lignes
contenant l’élément « tour » s’affichent. J’obtiens bien la liste de
tous mes tournevis.

En utilisant l’enregistreur j’ai récupéré la macro suivante qui
correspond à cette recherche
Sub Macro1()
'
Selection.AutoFilter Field:=2, Criteria1:="=tour*", Operator:=xlAnd
End Sub

Comment intégrer cette macro dans un userform et surtout comment faire
fonctionner l’userform de façà à ce que j'ai un champ dans lequel je
tape ma recherche et un aure champ dans lequel s'affichent les toutes
les lignes correspondant à cette recherche?

Merci pour votre aide.

10 réponses

1 2 3 4 5
Avatar
FFO
Rebonjour à toi

J'ai moi aussi le même résultat

Peux tu essayer en remplaçant :

Columns("B:B").AutoFilter

par

Selection.AutoFilter

ou

mettre une cote devant la ligne :

'Columns("B:B").AutoFilter

pour l'ihniber

Refais des essais et dis moi !!!!
Avatar
gloub
Rebonjour,
J'ai bien fait ce que tu m'as demandé, mais ça ne fonctionne toujours pas.
J'ai remplacé Colums("B:B"). Autofilter par Selection.Autofilter et mis
la ligne Colums("B:B") en ligen de commentaire (vert)

J'obtiens le message La methode autofilter de la classe range a echoue,
mais plus rien ne se sélectionne en jaune.

Voilà



FFO a écrit :
Rebonjour à toi

J'ai moi aussi le même résultat

Peux tu essayer en remplaçant :

Columns("B:B").AutoFilter

par

Selection.AutoFilter

ou

mettre une cote devant la ligne :

'Columns("B:B").AutoFilter

pour l'ihniber

Refais des essais et dis moi !!!!



Avatar
gloub
Suite du message précédent. J'ai répondu trop vite:
Apparait maintenant en jaune dans le debogueur la ligne
Selection.AutoFilter

FFO a écrit :
Rebonjour à toi

J'ai moi aussi le même résultat

Peux tu essayer en remplaçant :

Columns("B:B").AutoFilter

par

Selection.AutoFilter

ou

mettre une cote devant la ligne :

'Columns("B:B").AutoFilter

pour l'ihniber

Refais des essais et dis moi !!!!



Avatar
gloub
Waouhhh! Toi, tu veux me faire mal à la tête!!
Je vais quand même essayer! J'ai des cachets au clou de girofle en
réserve! :-)


lSteph a écrit :
Bonjour,

Désolé, si, si oui j'ai très bien compris mais je te confirme ma
réponse cela fait uniquement ce que l'on demande et pas autre chose
donc si on veut un clou on a un clou et pas un clou de girofle,
si on demande clou de girofle on a pas les autres clous, il faut juste
savoir ce que l'on veut!

Ce n'est pas un pb excel, le souci se situerait plutôt entre la chaise
et le micro , donc si on raisonne par libellé d'article c'est lui qui
remonte dans la liste. Ce que tu voudrais toi c'est raisonner par
nature d'article,. Dans ce cas en B tu gardes effectivement une nature
et nonpas le nom complet de l'article que tu peux en revanche préciser
en colonne adjacente.
Pour le code qui en découle il te faudra donc adapter l'incrément de
boucle de 0 à 4 de remplissage de myarray puisqu'on aura ainsi 5
éléments et de même avec le reste qui en découle notamment le
columncount appliqué à la liste dans l'initialize à passer de 4 à 5

Ainsi tu aurais par exemple en B clou, clou, clou et en C clou en
fer, clou du spectacle, clou de girofle.

A toi de jouer!

--
lSteph

On 5 déc, 06:23, gloub wrote:
Re,
Ok,
... mais si je rajoute clou de girofle au premier "clou" de ta liste, je
n'obtiens plus la liste complète des autres clous de la liste. C'est là
le hic.

Par contre si les éléments de la liste se limitent à un seul mot, toutes
les lignes s'affichent.

Kapiert?

LSteph a écrit :

.. je viens de tester, si j'ajoute "de girofle" derrière un clou
j'obtiens bien, à la fois clou et clou de girofle dans le premier choix
puis selon celui que je sélectionne j'obtiens convenablement ce qui
correspond et pas l'autre, dans la liste!
gloub a écrit :
Re,
Je viens de faire joujou avec ton code.
Ca marche bien quand la ligne de désignation de l'article ne contient
qu'un mot, mais si par exemple à la place de clou, je mets clou de
girofle, les autres "clou ne s'affichent pas.
En apprenti sorcier, j'ai essayé de rajouté une colonne pour indiquer
la "quantité" d'objets, mais ça ne s'affiche pas.
Faut dire que j'ai seulement mis un 5 à la place du 4 dans ton code,
pour qu'il balaye un peu plus large, mais il ne veut rien chiquer , il
ne veut pas m'afficher un cinquième colonne.
Voilà ce que j'ai fait:
Dans combox1_change:
Dim i As Long, myarray(600, 5), j As Long, x As Long
Dans userform_initialise:
ListBox1.ColumnCount = 5
Bonne soirée à toi
Michel
lSteph a écrit :
Re,
S'il faut un exemple http://cjoint.com/?meqpht5Stv
pour ce qui restera heureusement j'ai mis le code plus haut!
__
lSteph
On 4 déc, 14:10, gloub wrote:
Bonjour,
Je suis en train de ranger mon grenier et voudrait retrouver mes
affaires plus rapidement que par le passé. J’ai pensé enregistrer tous
mes objets, leur attribuer un numéro et les mettre dans des bas de
rangement numérotés.
Pour l’instant ma base de données fonctionne grâce au filtre
automatique
, mais pourriez vous m’aider à l’utiliser de façon plus conviviale ?
Je travaille sur 4 colonnes
A1=ordre d’enregistrement ; B1= Descriptif de mes articles ; C1= n° de
référence ; d1= n° de bac de rangement
J’aimerais bien créer un userform avec un champ dans lequel je
taperais
un élément d’une ligne à chercher et un autre champ qui récupérerait
toute les lignes contenant cet élément.
Par exemple pour chercher un tournevis avec le filtre automatique, je
choisis l’option personnalisé et je tape « tour* » et toutes les lignes
contenant l’élément « tour » s’affichent. J’obtiens bien la liste de
tous mes tournevis.
En utilisant l’enregistreur j’ai récupéré la macro suivante qui
correspond à cette recherche
Sub Macro1()
'
Selection.AutoFilter Field:=2, Criteria1:="=tour*",
Operator:=xlAnd
End Sub
Comment intégrer cette macro dans un userform et surtout comment faire
fonctionner l’userform de façà à ce que j'ai un champ dans lequel je
tape ma recherche et un aure champ dans lequel s'affichent les toutes
les lignes correspondant à cette recherche?
Merci pour votre aide.













Avatar
FFO
Rebonjour à toi
Coriace cette affaire
Et dire que chez moi avec Excel 2003 celà fonctionne nickel !!!

Tu vas essayer de remettre le fichier tel qu'il c'était lorsque tu l'as
récupéré et avant de faire des essais tu sélectionnes la colonne B et active
le filtre automatique
Une petite fléche doit être présente en B1
Dans cette état refait un essai et dis moi !!!
Avatar
FFO
Rebonjour à toi

Sur ce lien ma proposition modifiée
J'ai apporté une petite correction
Essaies là et dis moi !!!

http://www.cijoint.fr/cjlink.php?file=cj200812/cijHntSREH.xls
Avatar
gloub
rebonjour,

Pour les essais antérieur que tu m'as demandés, je suis toujours parti
du fichier original.
J'en ai fait un copie que j'essaye de trafiquer sans abîmer ton boulot.

Ta nouvelle version ne fonctionne pas non plus. Bug de la même façon.

J'ai remarqué cependant un truc en téléchargeant: le fichier reçu
apparait en "lecture seule". Pourtant quand je l'enregistre da,s un
répertoire, je n'ai aucune difficulté pour aller lire le code.



FFO a écrit :
Rebonjour à toi

Sur ce lien ma proposition modifiée
J'ai apporté une petite correction
Essaies là et dis moi !!!

http://www.cijoint.fr/cjlink.php?file=cj200812/cijHntSREH.xls



Avatar
FFO
Rebonjours à toi

Le mystère s'épaissi !!!!
Je te propose ma dernière version que j'ai enregistré en format Excel 97
Peut être du mieux pour toi
Enlèves la lecture seule du fichier en faisant un click droit sur son icone
dans son dossier puis propriété et décocher la lecture seule

J'espère enfin des bonnes nouvelles
Dis moi !!!!

http://www.cijoint.fr/cjlink.php?file=cj200812/cijVoX6T6B.xls
Avatar
gloub
FFO a écrit :
Rebonjours à toi

Le mystère s'épaissi !!!!
Je te propose ma dernière version que j'ai enregistré en format Excel 97
Peut être du mieux pour toi
Enlèves la lecture seule du fichier en faisant un click droit sur son icone
dans son dossier puis propriété et décocher la lecture seule

J'espère enfin des bonnes nouvelles
Dis moi !!!!

http://www.cijoint.fr/cjlink.php?file=cj200812/cijVoX6T6B.xls



Rebonjour,

... et le mystère continuera de rester très épais durant ce week-end.
Ton nouveau fichier n'était pas en lecture seule, mais présente les
mêmes symptômes que les précédents, mais bon!

Bonne soirée!
Avatar
gloub
Re,

Ca y est, tout fonctionne. J'ai pu rajouter la cinquième colonne.
Encore un grand merci.
Encore une bonne prise de tête positive sous un casque à pointe bien
astiqué.

Bon week-end



lSteph a écrit :
Bonjour,

Désolé, si, si oui j'ai très bien compris mais je te confirme ma
réponse cela fait uniquement ce que l'on demande et pas autre chose
donc si on veut un clou on a un clou et pas un clou de girofle,
si on demande clou de girofle on a pas les autres clous, il faut juste
savoir ce que l'on veut!

Ce n'est pas un pb excel, le souci se situerait plutôt entre la chaise
et le micro , donc si on raisonne par libellé d'article c'est lui qui
remonte dans la liste. Ce que tu voudrais toi c'est raisonner par
nature d'article,. Dans ce cas en B tu gardes effectivement une nature
et nonpas le nom complet de l'article que tu peux en revanche préciser
en colonne adjacente.
Pour le code qui en découle il te faudra donc adapter l'incrément de
boucle de 0 à 4 de remplissage de myarray puisqu'on aura ainsi 5
éléments et de même avec le reste qui en découle notamment le
columncount appliqué à la liste dans l'initialize à passer de 4 à 5

Ainsi tu aurais par exemple en B clou, clou, clou et en C clou en
fer, clou du spectacle, clou de girofle.

A toi de jouer!

--
lSteph

On 5 déc, 06:23, gloub wrote:
Re,
Ok,
... mais si je rajoute clou de girofle au premier "clou" de ta liste, je
n'obtiens plus la liste complète des autres clous de la liste. C'est là
le hic.

Par contre si les éléments de la liste se limitent à un seul mot, toutes
les lignes s'affichent.

Kapiert?

LSteph a écrit :

.. je viens de tester, si j'ajoute "de girofle" derrière un clou
j'obtiens bien, à la fois clou et clou de girofle dans le premier choix
puis selon celui que je sélectionne j'obtiens convenablement ce qui
correspond et pas l'autre, dans la liste!
gloub a écrit :
Re,
Je viens de faire joujou avec ton code.
Ca marche bien quand la ligne de désignation de l'article ne contient
qu'un mot, mais si par exemple à la place de clou, je mets clou de
girofle, les autres "clou ne s'affichent pas.
En apprenti sorcier, j'ai essayé de rajouté une colonne pour indiquer
la "quantité" d'objets, mais ça ne s'affiche pas.
Faut dire que j'ai seulement mis un 5 à la place du 4 dans ton code,
pour qu'il balaye un peu plus large, mais il ne veut rien chiquer , il
ne veut pas m'afficher un cinquième colonne.
Voilà ce que j'ai fait:
Dans combox1_change:
Dim i As Long, myarray(600, 5), j As Long, x As Long
Dans userform_initialise:
ListBox1.ColumnCount = 5
Bonne soirée à toi
Michel
lSteph a écrit :
Re,
S'il faut un exemple http://cjoint.com/?meqpht5Stv
pour ce qui restera heureusement j'ai mis le code plus haut!
__
lSteph
On 4 déc, 14:10, gloub wrote:
Bonjour,
Je suis en train de ranger mon grenier et voudrait retrouver mes
affaires plus rapidement que par le passé. J’ai pensé enregistrer tous
mes objets, leur attribuer un numéro et les mettre dans des bas de
rangement numérotés.
Pour l’instant ma base de données fonctionne grâce au filtre
automatique
, mais pourriez vous m’aider à l’utiliser de façon plus conviviale ?
Je travaille sur 4 colonnes
A1=ordre d’enregistrement ; B1= Descriptif de mes articles ; C1= n° de
référence ; d1= n° de bac de rangement
J’aimerais bien créer un userform avec un champ dans lequel je
taperais
un élément d’une ligne à chercher et un autre champ qui récupérerait
toute les lignes contenant cet élément.
Par exemple pour chercher un tournevis avec le filtre automatique, je
choisis l’option personnalisé et je tape « tour* » et toutes les lignes
contenant l’élément « tour » s’affichent. J’obtiens bien la liste de
tous mes tournevis.
En utilisant l’enregistreur j’ai récupéré la macro suivante qui
correspond à cette recherche
Sub Macro1()
'
Selection.AutoFilter Field:=2, Criteria1:="=tour*",
Operator:=xlAnd
End Sub
Comment intégrer cette macro dans un userform et surtout comment faire
fonctionner l’userform de façà à ce que j'ai un champ dans lequel je
tape ma recherche et un aure champ dans lequel s'affichent les toutes
les lignes correspondant à cette recherche?
Merci pour votre aide.













1 2 3 4 5