Listbox alimenté avec critère

Bonjour,

Je souhaiterai alimenter une listbox, qu'avec les lignes concernées par un critère dans un textbox.

pouvez vous m'aider pour écrire le code

Merci

Bonjour,

A lecture de votre demande vous pensez réellement que quelqu'un va vous aider ?
Allez dans vos fils au sujet des combobox (https://forum.excel-pratique.com/membre/91821) , c'est la même chose pour une listbox (avec 1 colonne)

Il y a pas mal de fils qui traite de ce sujet, une petite recherche -> https://forum.excel-pratique.com/recherche

Sinon ici aussi --> https://www.excel-pratique.com/fr/vba/controles_suite

A+

Bonjour,

J'ai pas trouvé mieux que de créer une feuille temp...

si jamais une solution je suis preneur.

30logistique.xlsm (93.48 Ko)

Bonjour DAN,

Vous ne répondez pas à mes interrogations, je pense que vous n'avez pas ouvert mon fichier pour comprendre mes besoins.

je me suis débrouillé en amateur certainement, mais avec tout les pro présent ici, je m'attendais à minima à une piste.

Merci.

Bonjour,

Vous ne répondez pas à mes interrogations, je pense que vous n'avez pas ouvert mon fichier pour comprendre mes besoins. je me suis débrouillé en amateur certainement, mais avec tout les pro présent ici, je m'attendais à minima à une piste.

Heu ???. Excusez mais vous êtes sérieux là ?.
J'ai posté une réponse à 13h05, vous revenez avec un fichier 6 heures plus tard et à 19h30, vous me dites que je ne réponds pas à vos interrogations ? Qui plus est je n'étais pas connecté à cette heure là
Si vous aviez donné votre fichier dans votre premier post, j'aurais regardé et vous aurait adressé une réponse

Mes questions subsistent :

- Critère dans quelle textbox ?
- Listbox à remplir depuis quelle feuille ?
- votre feuille temps sert à quoi. Qu'avez vous penser à ce sujet

Soyez précis dans vos explications aux points ci-dessus si vous voulez avancer.

Cordialement

Bonjour Dan et désolé,

Plus explicit :

dans le multipage mouvement:

afficher dans la listbox le critère seulement des articles avec le critère N° ACDE dépendante de la feuille MAGASIN, sachant que c'est une nouvelle entrée.

Je m'excuse pour le mal entendu je ne pensais pas à mal et critiquer votre retour.

Mon fichier est presque identique à chaque post, je supposais que vous l'aviez ouvert puisque vous faisiez référence à mes anciens posts,

J'imaginais en réponse, un principe de code.

La feuil temp m'ennuis un peu et je me dis que peut être je peux l'utiliser à tout les mouvements si je n'ai pas d'autres solutions.

Encore une fois désolé, je me suis sans doute mal exprimé.

Sans rancune ?

Bonjour,

Encore une fois désolé, je me suis sans doute mal exprimé.

Pas de soucis. C'est juste que souvent les explications n'étant pas claires dès le départ, on ne sait pas avance

Mon fichier est presque identique à chaque post, je supposais que vous l'aviez ouvert puisque vous faisiez référence à mes anciens posts,

Si cela concerne un projet et sauf cas spécifique, le mieux est souvent de rester sur le même fil. Celui qui vous répond a plus facile de suivre l'évolution.

afficher dans la listbox le critère seulement des articles avec le critère N° ACDE dépendante de la feuille MAGASIN, sachant que c'est une nouvelle entrée.

Merci des explications mais j'ai tout de même une question.
- On ouvre votre userform
- On clique sur le Multipage "Mouvement" qui va afficher 4 autres multipages
C'est dans le multipage "Attente livraison" que vous voulez faire la recherche ?

La feuil temp m'ennuis un peu et je me dis que peut être je peux l'utiliser à tout les mouvements si je n'ai pas d'autres solutions.

Je n'ai pas compris le pourquoi de cette feuille

Bonjour Dan,

Dans UF multipage mouvement, dans lequel j'ai regroupé hier toutes les actions possible.

Je cherche à afficher dans le listbox uniquement les lignes d'ajout (en cliquant "ajouter à la liste") concerné par le critère d'une nouvelle entré dans le combobox "nacde" que ce numéro existe ou non.

le seul moyens que j'ai trouvé c'est d'ajouté ces entrées dans la feuil TEMP qui lorsque la saisie est terminée, je copie le contenu à partir de la ligne 2 dans la feuille magasin en cliquant sur "valider le mouvement".

Ci joint le nouveau fichier.

Si je peux me passer de cet étape supplémentaire en passant par la feuille temp ça m'arrange, j'ai trouvé cette méthode dans un tuto qui en faite construit une feuille de filtrage concerné par le/les critères demandés.

Merci de votre aide.

33logistique.xlsm (110.98 Ko)

Je cherche à afficher dans le listbox uniquement les lignes d'ajout (en cliquant "ajouter à la liste") concerné par le critère d'une nouvelle entré dans le combobox "nacde" que ce numéro existe ou non.

Pourquoi n'ajoutez vous pas directement dans la feuille Magasin ? Une fois l'ajout effectué on remet la listbox à jour

Puis j'avais une autre question. Lorsque vous ouvrez votre userform, vous ne voulez pas voir toutes les infos de votre feuille dans la listbox ?

Justement, c'est ce que je ne parviens pas à faire, mettre à jour la listbox avec le ou les critères.

Pour les infos du listbox il seront différents suivant les mouvements (attente de livraison, entrée, sortie, retour) pour une question de lisibilité, pour le moment mon Projet est loin d'être terminer, j'avance pas à pas avec mes quelques connaissances.

Il faut que vous sachiez d'abord ce que vous voulez faire sans pensez à VBA.
Là je ne capte pas comment vous fonctionnez réellement avec ce fichier et son but final.

Votre Magasin représente un stock d'articles disponibles ?
Exemple : Vous faites une entrée, on l'ajoute où ? dans la feuille Magasin ?

Donnez un exemple concret

Autres points :

dans un autre post vous demandez la gestion des doublons. Vous avez une proposition et elle n'est pas dans votre fichier posté. Heureusement que je regarde j'étais justement en train de regarder ce point.

La numérotation de vos combo cela vient d'où ? Il n'y a aucun suite logique dans votre fichier. On passe de 1 à 516, 578 ou 762

Je vais essayer de mieux m'expliquer:

scénario en image ci dessous :

J'ajoute une nouvelle attente de livraison "NEW" qui n'est pas encore dans la feuille magasin.

Je souhaiterai l'afficher dans la listbox comme ci dessous (sauf que je transite par la feuille temp car je n'arrive pas à fitrer seulement le critère new en l'occurence)

image

Dans un second temp, quand je clique "valider le mouvement", je vide "temp" pour le copier dans "magasin".

Mais je souhaites pour le reste du projet, afficher dans le listbox les lignes qui contiennent un critère par exemple "NEW" de N°ACDE. directement depuis la feuille magasin que la donnée soit existante ou qu'elle vienne d'être ajoutée.

image

Voilà je ne sais pas comment mieux m'expliquer, la question est vraiment de remplir la listbox avec les lignes concernées par un critère commun.

Merci de vos explications

Mais franchement il y a des choses étranges dans votre Private sub initialize.
Pourquoi à chaque ouverture de l'userform, vous demandez au code qu'il vous mette les noms dans la ligne 1 de la feuille Magasin ??

Je suppose que vous n'effacez jamais la totalité des articles dans la feuille Magasin. Juste ?

Bon c'est pas grave DAN.

Merci.

Vous ne répondez pas à la question.

Cela ne sert à rien de mettre des lignes codes qui ne servent pas. Cela complique l'analyse par rapport à votre demande

Je dois rendre un fichier vierge à l'origine, car je ne serais pas l'utilisateur principale.

Je ne souhaites pas qu'il y est de mauvaise saisie.

Oui mon fichier est pas beau, je ne suis pas expert, les combobox pas logique qui ne se suivent pas est le résultat de plusieurs expérience de mise en page jusqu'au moment ou je pense avoir trouvé une meilleur solution.

Mais si vous ne pouvez pas m'aidez ce n'est pas grave, on échange beaucoup et je ne sens pas de solution possible à mon interrogation...

Mais si vous ne pouvez pas m'aidez ce n'est pas grave, on échange beaucoup et je ne sens pas de solution possible à mon interrogation...

Pourquoi pas de solution. C'est juste que si vous voulez une aide, il faut que l'on comprenne.
Il suffit de modifier le code Ajout Private Sub CommandButton14_Click() et d'envoyer tout dans la feuille Magasin au lieu de Temp

Ok mais comment je fais pour afficher dans le listbox que les lignes concerné par le critère du numéro ACDE présent dans le combobox ?

Peut être un truc avec option compare text, mais je ne sais pas l'utiliser.

Ok mais comment je fais pour afficher dans le listbox que les lignes concerné par le critère du numéro ACDE présent dans le combobox ?

En premier il faut charger la feuille Magasin. Une fois fait on réinitialise la listbox

Peut être un truc avec option compare text, mais je ne sais pas l'utiliser.

Non. Cette instruction sert à éviter des erreurs avec les caractères minuscules ou majuscules

Je vais modifier le code d'ajout pour envoyer dans la feuille magasin au lieu de temp.

Entre temps, vous pouvez déjà remplacer votre Private sub initialize() par celle ci-dessous

Private Sub UserForm_Initialize()
Dim Mouvements()
Dim cola As Integer, colx As Integer, colb As Integer

cola = 1
colx = 1
colb = 1

Mouvements = Array("Attente de livraison", "Entrée", "Sortie", "Retour")
ComboBox765.List = Mouvements

With Sheets("MAGASIN")
    .Range("a1") = auprofit.Caption
    .Range("b1") = codeprojet.Caption
    .Range("c1") = sitede.Caption
    .Range("d1") = famille.Caption
    .Range("e1") = fournisseur.Caption
    .Range("f1") = ref.Caption
    .Range("g1") = nacde.Caption
    .Range("h1") = "UNITE"
    .Range("i1") = punit.Caption
    .Range("j1") = qte.Caption
    .Range("k1") = ptotal.Caption
    .Range("l1") = place.Caption
    .Range("m1") = qtemax.Caption
    .Range("n1") = "QTE EN ATTENTE"
End With

With Sheets("FAMFOUR")
    Do While .Cells(1, cola).Value <> ""
        ComboBox478.AddItem .Cells(1, cola).Value
        ComboBox12.AddItem .Cells(1, cola).Value
        cola = cola + 1
    Loop
End With

With Sheets("UTILISATEUR")
    Do While .Cells(1, colx).Value <> ""
        ComboBox1.AddItem .Cells(1, colx).Value
        ComboBox8.AddItem Cells(1, colx).Value
    colx = colx + 1
    Loop
End With

Dim i As Integer
i = 1
With Sheets("MAGASIN")
    Do While .Cells(i + 1, 14).Value <> ""
        ComboBox762.AddItem Cells(i + 1, 7).Value
        i = i + 1
    Loop
End With

Width = Application.Width
Height = Application.Height
Left = 0
Top = 0
'Sheets("DEMARRER").Select --> Dan ne sert pas
End Sub
Rechercher des sujets similaires à "listbox alimente critere"