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
gloub
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
gloub
Pour que ça fonctionne, il faudrait que les espaces entre les mots
d'une ligne ne comptent pas comme espace, mais comment faire pour que
par exemple dix mots d'une ligne séparés par un espace ne comptent que
pour un mot?

gloub a écrit :
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
gloub
Mille excuses. Je pense que c'est mon excel 97 qui déconne. Je viens de
m'apercevoir qu' après avoir modifié la cellule B2 en "clou de girofle"
et être revenu au contenu initial "clou", les lignes contenant le mot
"clou" ne s'affichaient pas non plus.
Je vais essayer de trouver un excel plus récent. Ca devrait le faire je
pense.
En tout cas un grand merci!

gloub a écrit :
Pour que ça fonctionne, il faudrait que les espaces entre les mots
d'une ligne ne comptent pas comme espace, mais comment faire pour que
par exemple dix mots d'une ligne séparés par un espace ne comptent que
pour un mot?

gloub a écrit :
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

Je viens de récupérer mon fichier et de le retester avec le critère kit* et
pas de souci celà fonctionne parfaitement
Je suis sous Excel 2003 peut être là la raison étant toi sous 97 si j'ai
bien compris

Peux tu avec l'enregistreur de Macro me faire parvenir le code généré
lorsque dans mon fichier tu fais la même recherche manuellement

J'essairai de m'en servir dans ma proposition

Merci d'avance
Avatar
gloub
FFO a écrit :
Rebonjour à toi

Je viens de récupérer mon fichier et de le retester avec le critère kit* et
pas de souci celà fonctionne parfaitement
Je suis sous Excel 2003 peut être là la raison étant toi sous 97 si j'ai
bien compris

Peux tu avec l'enregistreur de Macro me faire parvenir le code généré
lorsque dans mon fichier tu fais la même recherche manuellement

J'essairai de m'en servir dans ma proposition

Merci d'avance





Re,

Voilà ce que ça donneci -dessous! Est-ce bien cela que tu veux?

Bonne journée à toi et à Stephane!


Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 05/12/2008 par
'

'
Selection.AutoFilter Field:=1, Criteria1:="=kit*", Operator:=xlAnd
End Sub
Avatar
FFO
Rebonjour à toi
J'ai exactement la même chose
Peux tu me donner la ligne sur laquelle s'arrète la macro (surligné en jaune
dans l'éditeur aprés avoir fais Débug)

Merci à toi
Avatar
lSteph
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, t outes
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 cho ix
> 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 contien t
>> 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 indiq uer
>> 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é enregist rer 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 conv iviale ?
>>>> Je travaille sur 4 colonnes
>>>> A1=ordre d’enregistrement ; B1= Descriptif de mes articles ; C 1= n° de
>>>> référence ; d1= n° de bac de rangement
>>>> J’aimerais bien créer un userform  avec un champ dans lequel j e
>>>> taperais
>>>>   un élément d’une ligne à chercher  et un autre champ q ui récupérerait
>>>> toute les lignes contenant cet élément.

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

>>>> En utilisant l’enregistreur j’ai récupéré la macro suivant e 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 commen t faire
>>>> fonctionner l’userform de façà à ce que j'ai un champ dans l equel je
>>>> tape ma recherche et un aure champ dans lequel s'affichent les toute s
>>>> les lignes correspondant à cette recherche?

>>>> Merci pour votre aide.


Avatar
gloub
FFO a écrit :
Rebonjour à toi
J'ai exactement la même chose
Peux tu me donner la ligne sur laquelle s'arrète la macro (surligné en jaune
dans l'éditeur aprés avoir fais Débug)

Merci à toi





La macro s'arrête sur la deuxieme ligne
Columns("B:B").AutoFilter
Avatar
FFO
Rebonjour à toi

Donc c'est sur l'autre partie du filtrage qu'il semble que le bas blesse
entre nos 2 versions
Peux tu avec l'enregistreur de macro une fois le filtre automatique activé
sur la colonne B réaliser sa désactivation (Données/Filtrer décocher le
Filtre automatique)
et me transmettre le code généré

Merci pour ta contribution

"gloub" wrote:

FFO a écrit :
> Rebonjour à toi
> J'ai exactement la même chose
> Peux tu me donner la ligne sur laquelle s'arrète la macro (surligné en jaune
> dans l'éditeur aprés avoir fais Débug)
>
> Merci à toi
>


La macro s'arrête sur la deuxieme ligne
Columns("B:B").AutoFilter






Avatar
gloub
Rebonjour,

Voilà la macro au moment où je quitte la filtre

Sub SansFiltre()
'
' Macro1 Macro
' Macro enregistrée le 05/12/2008 par
'

'
Selection.AutoFilter
End Sub

Je ne sais pas qui doit remercier l'autre pour sa "contribution"! :-)


FFO a écrit :
Rebonjour à toi

Donc c'est sur l'autre partie du filtrage qu'il semble que le bas blesse
entre nos 2 versions
Peux tu avec l'enregistreur de macro une fois le filtre automatique activé
sur la colonne B réaliser sa désactivation (Données/Filtrer décocher le
Filtre automatique)
et me transmettre le code généré

Merci pour ta contribution

"gloub" wrote:

FFO a écrit :
Rebonjour à toi
J'ai exactement la même chose
Peux tu me donner la ligne sur laquelle s'arrète la macro (surligné en jaune
dans l'éditeur aprés avoir fais Débug)

Merci à toi




La macro s'arrête sur la deuxieme ligne
Columns("B:B").AutoFilter








1 2 3 4 5