Listbox alimenté avec critère

pour le doublon le code est intégrer dans ce fichier

Pourquoi si vous choisissez M_DHOLLANDE :
- le ACDE "FES" n'est pas repris ?
- Et est-ce normal que tous les autres ACDE sont repris dans la combo alors qu'ils correspondent à Rodrigez ?

C'est justement la question

FEZ est unique et n'apparait pas

pour le reste RODRIGUEZ j'ai tous sauf FEZ

je pense qu'il faut un if pour contrer la valeur unique qui ne possède pas de doublon.

et il manque une commande pour initialiser si changement de nom mais ça je peux le faire.

Essayez ceci plutot

Private Sub ComboBox9_Change()
Dim c As Range
Dim tablo As Collection

ComboBox762.Clear
Set tablo = New Collection
On Error Resume Next

With Sheets("MAGASIN")
    For Each c In .Range("G2:G" & .Range("G" & .Rows.Count).End(xlUp).Row)
        If .Range("A" & c.Row).Value = ComboBox8.Value Then
            tablo.Add c.Value, CStr(c.Value)
        End If
    Next c
End With

On Error GoTo 0
For Each Item In tablo
    Me.ComboBox762.AddItem Item
Next Item
End Sub

Bonjour Dan,

Ca marche nickel.

J'ai voulu partir sur le dowhile, mais bon le for each marche nickel.

merci.

Sinon une solution pour le listbox selon critère ?

Sinon une solution pour le listbox selon critère ?

Dans un précédent post, vous dites "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."

Mais j'ai besoin d'un exemple précis pour comprendre ce que vous voulez faire

Bonjour Dan,

Oui effectivement vous avez résolu le problème pour la partie "attente de livraison", car à l'époque je fonctionner avec TEMP.

Je pensais pouvoir résoudre les points ci dessous avec avec cette feuille supplémentaire.

Pour les autres fonctions "Entrée, Sortie, Retour" du combobox 765, je souhaites afficher ce qui est présent dans le MAGASIN dans le listbox3 selon le critère du Numéro ACDE pour le mouvement "entrée", comme si je filtrais avec EXCEL, ce qui me permettra avec les boutons, soit de valider le mouvement sélectionné, soit de modifier, soit de supprimer...

Exemple:

Avec le mouvement entrée:

Précédemment avec l'attente de livraison, la quantité d'article est en attente de livraison, donc le fait de les faire apparaitre dans le listbox me permettra de valider l'entrée des articles effectivement reçu ou les quantités effectivement reçu (bouton valider le mouvement, ou modifier)

les autres mouvement seront sur le même principe de code mais le critère sera le bon d'emprunt, la référence, le bon de sortie selon le mouvement sélectionné.

Bonjour

Pour les autres fonctions "Entrée, Sortie, Retour" du combobox 765, je souhaites afficher ce qui est présent dans le MAGASIN dans le listbox3 selon le critère du Numéro ACDE pour le mouvement "entrée", comme si je filtrais avec EXCEL, ce qui me permettra avec les boutons, soit de valider le mouvement sélectionné, soit de modifier, soit de supprimer...

Donc seules les combobox Mouvement et ACDE, ne doivent contenir des données ? Toutes les autres sont vides ?

Pas vraiment,

"au profit de est" lié avec le "code projet" qui lui même filtre le numéro ACDE.

le critère évolue en fonction du mouvement

pour entrée c'est le critère ACDE

pour sortie ce sera bon de sortie ou bon d'emprunt

pour retour ce sera ACDE ou bon de sortie ou bon d'emprunt, je ne suis pas encore fixer sur ce choix de mouvement.

En fait vous demandez à l'userform de faire des choses multiples. Cela complique le projet
Soit vous êtes en mode ajout ou vous êtes en mode recherche.

Mais faire les deux dans le même multipage pourrait compliquer les codes. C'est pour cette raison que je posais la question.

Si vous choisissez Entree, sortie, retour, cela ne concerne plus de l'ajout si j'ai bien compris mais bien de la recherche
D'où il faut désactiver ce bouton ainsi que le bouton Valider mouvement pour éviter de faire des ajouts dans la listbox et dans la feuille via le bouton Valider Mouvement.

La recherche peut se faire alors via les choix de combo (à définir)
Vous devriez penser à cela avant sous peine de devoir tout refaire.

Est-ce normal que le multipage Mouvement servent aussi à la recherche ?

Oui c'st bien l'idée.

Pour désactiver les bouton je peux ajouter un exit sub si la valeur du combo mouvement n'est pas adéquate.

Pour désactiver les bouton je peux ajouter un exit sub si la valeur du combo mouvement n'est pas adéquate.

Non, il faut désactiver le bouton uniquement.
Pour moi le rendre inactif par défaut à l'ouverture de l'userform puis l'activer ou non selon le choix de la combo mouvement

Oui aussi, pourquoi pas.

Dans la Private Sub UserForm_Initialize(), au début, ajoutez cette ligne

CommandButton14.Enabled = False

Dans l'userform, ajoutez ce code

Private Sub ComboBox765_Change()
If ComboBox765.Value = "Attente de livraison" Then CommandButton14.Enabled = True Else: CommandButton14.Enabled = False
End Sub

ensuite, ACDE est chargé en fonction du choix des combobox 8 et 9. Est-ce ok pour vous car cela veut dire que les ACDE seront listés en fonction de ces deux choix (comme précédemment)

Oui ça peut le faire.

j'étais capable de l'écrire ce code

Après vraiment je ne suis pas capable de renseigner la listbox comme je le voudrais avec mes critères selon les mouvements, j'ai fait des tentatives avec dowhile et en y réfléchissant tout en écrivant je pense avoir une idée:

créer une boucle do et dimensionner genre "lig = range a:o ou cells 1 to 14" enfin dans ce genre d'idée.

Après vraiment je ne suis pas capable de renseigner la listbox comme je le voudrais avec mes critères selon les mouvements,

Le problème principal c'est de savoir où vous pêcher le critère dans la feuille MAgasin. Comment dans cette feuille distinguez-vous les entrées, sorties et Retour ?

Oui, je comprends,

Pour les entrée ce sera suite à l'ajout de attente de livraison et donc les quantités sont en colonne quantité en attente de livraison.

Par la suite dans un autre multipage "chantier", une autre listbox, toujours en relation avec la feuille magasin, permettra de voir les article disponibles puis en validant les articles, les quantités en cliquant sur le bouton vas généré un numéro de bon de sortie qui sera ajouté dans une colonne dans la feuille magasin, mais le code sera sur le même principe, afficher dans le listbox les lignes concernées par le critère désigné.

Es que une une recherche avec une boucle do et un dim de la lig pourrait fonctionner ?

du genre

With Sheets("MAGASIN")
i = 1
Do While Cells(2, 7).Value = ComboBox762.Value
Rows.Select
ListBox3.AddItem Rows.Select
i = i + 1
Loop
End With

Mais évidement cela ne fonctionne pas.

Pour les entrée ce sera suite à l'ajout de attente de livraison et donc les quantités sont en colonne quantité en attente de livraison.

Vous pouvez tester ce code qui agit en fonction des combo 765, 8, 9 et 762 et ce, si la combo765 renseigne ENTREE
Le code ajoute les infos dans la listbox en fonction de la quantité mentionnée dans la colonne "Qte en attente" (condition si cette quantité est mentionnée)

Private Sub ComboBox762_Change()
Dim plage As Range, cel As Range

If ComboBox765.Value = "Entrée" Then
    With ListBox3
        .Clear
        .ColumnCount = 8
    End With
    Set plage = Sheets("MAGASIN").Range("G2:G" & Sheets("MAGASIN").Range("G" & Rows.Count).End(xlUp).Row)

    For Each cel In plage
        If cel.Offset(0, 7) <> "" And cel.Offset(0, -5) = ComboBox9.Value And cel.Value = ComboBox762.Value Then
            With ListBox3
                .AddItem
                .List(.ListCount - 1, 0) = cel.Offset(0, -6).Value 'au profit de
                .List(.ListCount - 1, 1) = cel.Offset(0, -4).Value ' pour le site
                .List(.ListCount - 1, 2) = cel.Offset(0, -3).Value 'famille article
                .List(.ListCount - 1, 3) = cel.Offset(0, -2).Value 'fournisseur
                .List(.ListCount - 1, 4) = cel.Offset(0, -1).Value 'Reference
                .List(.ListCount - 1, 5) = cel.Offset(0, 5).Value 'emplacement
                .List(.ListCount - 1, 6) = cel.Offset(0, 6).Value 'qte max
                .List(.ListCount - 1, 7) = cel.Offset(0, 7).Value 'qte attente
            End With
        End If
    Next cel

End If
End Sub

je n'ai pas compris ce que vous cherchez avec le code dans votre post précédent

Vous êtes un génie !!!

Ca marche impeccable, et c'est la clé pour un grand nombre de mes actions.

Il me reste juste à bien comprendre ce code pour l'appliquer à d'autres fonction.

Ne cherchez pas à comprendre mon code je ne suis pas un pro du tout, je me débrouille tout juste en bricolant, vous l'avez bien constaté.

Je ne clôture pas encore, je pense avoir des questions encore.

il faut vraiment que je comprenne en buchant un peu le listcount, le offset et le reste ca va je le comprends.

Merci encore et une très bonne soirée.

Rechercher des sujets similaires à "listbox alimente critere"