XL 2016 Charger Combobox avec critère

vanin

XLDnaute Occasionnel
Bonjour, aidez moi s'il vous plait je suis débutant, de puis une semaine je cherche à ajouter la gestion fifo à mon fichier mais j'ai toujours pas de solution.
Je souhaite alimenter la combobox (cboServices) du userform usfDevis à partir du tableau de la feuille reception . mais la condition c'est que le combobox charge seulement les produits dont la date d'entrée est plus ancienne. exemple le cas du tableau de la feuille reception le combobox ne doit charger que les produits
TIKA 250ml_tamarin (05/05/2021) pour le produit TIKA 250ml_tamarin ,
TIKA 250ml_Bissap (19/05/2021) pour le produit TIKA 250ml_Bissap
TIKA 250ml_Ananas (19/05/2021) pour le produit TIKA 250ml_Ananas
TIKA 250ml_Mangue (19/05/2021) pour le produit TIKA 250ml_Mangue
TIKA 250ml_Mangue (05/05/2021) pour le produit TIKA 250ml_Mangue
TIKA 1L_Mangue (19/05/2021) pour le produit TIKA 1L_Mangue
Lorsqu'on clique sur le bouton ajouter,
verifier si la quantité ajoutée pour chaque produit est suffisante.
- si la quantité demandée est égale au stock du produit on ajoute le produit puis la ligne se supprime de la feuille reception. ex stock=10, qté demandée=10 donc le stock=0 donc suppression de la ligne de la feuille reception et chargement du produit dans le combobox en fonction de la date suivante.
- si la quantité demandée est superieure au stock du produit, un message pour informer de la quantité disponible puis l'utilisateur ajuste en fonction de la quantité disponible puis la ligne se supprime de la feuille reception. ex stock=10, qté demandée=15 donc si l'utilisateur corrige et ajoute les 10, le stock=0 donc suppression de la ligne de la feuille reception et chargement du produit dans le combobox en fonction de la date suivante.
- si la quantité demandée est inferieure au stock du produit, . ex stock=10, qté demandée=5, le produit est ajouté et le stock est mis à jour stock=5 donc vu que le produit a encore du stock la ligne de la feuille reception n'est pas supprimée et le combobox conserve le produit jusqu’à épuisement du stock
donc lorsque la ligne d'un produit est égale à 0, la ligne est supprimée afin qu'elle soit remplacée dans le combobox par ligne du meme produit ayant la date qui suit la date du produit supprimé.
l'idée est de facturer les premiers produits ajoutés à cause de leurs dates de péremption

je demande beaucoup mais je vous en supplie aidez moi.
 

Pièces jointes

  • Devis Zambol.xlsm
    81.7 KB · Affichages: 23

vanin

XLDnaute Occasionnel
Bonjour vanin, ChTi160, le forum,

La macro ChargeServices a pour argument une variable L As Long, il ne faut donc pas lui affecter un texte.

De toute façon la macro cboFamille_Change ne va pas du tout.

Bon on ne va pas continuer comme ça à reprendre tout le projet.

La Charte du forum stipule qu'une nouvelle question doit faire l'objet d'une nouvelle discussion.

Travaillez par vous-même et quand vous bloquez venez sur le forum avec une question.

A+
Bonjour, ok compris je vais travailler dessus merci beaucoup pour votre aide
 

job75

XLDnaute Barbatruc
Je reviens sur ce fil car charger les 2 ComboBox dans la macro UserForm_Initialize n'est pas excellent.

Il vaut mieux ces 2 macros, voyez le fichier (3) :
VB:
Private Sub cboFamille_Enter()
Dim d As Object, L&, x$, tablo, i&, dat
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
L = cboServices.ListIndex
x = cboServices.Text
tablo = [T].Resize(, 3) 'tableau structuré, matrice, plus rapide
For i = 1 To UBound(tablo)
    dat = tablo(i, 2)
    If IsDate(dat) Then _
        If CDate(dat) <= Date Then _
            If L = -1 Then d(tablo(i, 1)) = "" Else If tablo(i, 3) = x Then d(tablo(i, 1)) = ""
Next
If d.Count Then cboFamille.List = d.keys Else cboFamille.Clear
End Sub

Private Sub cboServices_Enter()
Dim d As Object, L&, x$, tablo, i&, dat
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
L = cboFamille.ListIndex
x = cboFamille.Text
tablo = [T].Resize(, 3) 'tableau structuré, matrice, plus rapide
For i = 1 To UBound(tablo)
    dat = tablo(i, 2)
    If IsDate(dat) Then _
        If CDate(dat) <= Date Then _
            If L = -1 Then d(tablo(i, 3)) = "" Else If tablo(i, 1) = x Then d(tablo(i, 3)) = ""
Next
If d.Count Then cboServices.List = d.keys Else cboServices.Clear
End Sub
Les macros cboFamille_Change et cboServices_Change sont maintenant inutiles et ont été supprimées.
 

Pièces jointes

  • Devis Zambol3).xlsm
    93.9 KB · Affichages: 5

vanin

XLDnaute Occasionnel
Je reviens sur ce fil car charger les 2 ComboBox dans la macro UserForm_Initialize n'est pas excellent.

Il vaut mieux ces 2 macros, voyez le fichier (3) :
VB:
Private Sub cboFamille_Enter()
Dim d As Object, L&, x$, tablo, i&, dat
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
L = cboServices.ListIndex
x = cboServices.Text
tablo = [T].Resize(, 3) 'tableau structuré, matrice, plus rapide
For i = 1 To UBound(tablo)
    dat = tablo(i, 2)
    If IsDate(dat) Then _
        If CDate(dat) <= Date Then _
            If L = -1 Then d(tablo(i, 1)) = "" Else If tablo(i, 3) = x Then d(tablo(i, 1)) = ""
Next
If d.Count Then cboFamille.List = d.keys Else cboFamille.Clear
End Sub

Private Sub cboServices_Enter()
Dim d As Object, L&, x$, tablo, i&, dat
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
L = cboFamille.ListIndex
x = cboFamille.Text
tablo = [T].Resize(, 3) 'tableau structuré, matrice, plus rapide
For i = 1 To UBound(tablo)
    dat = tablo(i, 2)
    If IsDate(dat) Then _
        If CDate(dat) <= Date Then _
            If L = -1 Then d(tablo(i, 3)) = "" Else If tablo(i, 1) = x Then d(tablo(i, 3)) = ""
Next
If d.Count Then cboServices.List = d.keys Else cboServices.Clear
End Sub
Les macros cboFamille_Change et cboServices_Change sont maintenant inutiles et ont été supprimées.
Bonjour, merci énormement pour votre aide, le combo fonction mais y'a un petit souci, lorsque le combo cboServices est vide (sans selection) pas de souci au niveau du combo famille. mais lorsqu'on selectionne un produit avec le combobox cboServices par exemple TIKA 250ml_Bissap, le combox famille ne contient que la famille TIKA 250ML, la famille TIKA 1L a disparu. donc il est difficile de changer de famille lorsqu'un produit est selectionnné . le changement de produit entraine le changement de famille.
aussi toutes mes excuses j'ai oublié d'jouter au tableau de la feuille reception le colisage et le prix. sans le prix dans le lstDevis il est impossible de calculer le total.
merci encore pour votre aide
 

Pièces jointes

  • Devis Zambol3).xlsm
    79.6 KB · Affichages: 2

vanin

XLDnaute Occasionnel
Re
je ne sais pas car n'ayant pas tout compris je me suis contenté de comparer les date par rapport a Aujourd'hui et non la plus ancienne ce celles existante dans le Tableau
je regarde demain soir et si pas de solution d'ici là !
jean marie
Bonjour, toutes mes excuses j'ai oublié d'jouter au tableau de la feuille reception le colisage et le prix. sans le prix dans le lstDevis il est impossible de calculer le total.
merci encore pour votre aide
 

Pièces jointes

  • Devis Zambol Chti160.xlsm
    83.6 KB · Affichages: 3

job75

XLDnaute Barbatruc
lorsqu'on selectionne un produit avec le combobox cboServices par exemple TIKA 250ml_Bissap, le combox famille ne contient que la famille TIKA 250ML, la famille TIKA 1L a disparu.
C'est normal puisque les 2 ComboBox sont liées, la liste d'une dépend de ce qui est affiché dans l'autre.

C'est bien pour cela que j'ai mis 2 macros au lieu de UserForm_Initialize.

Maintenant c'est terminé car comme je l'ai dit une seule question traitée par discussion.
 

vanin

XLDnaute Occasionnel
C'est normal puisque les 2 ComboBox sont liées, la liste d'une dépend de ce qui est affiché dans l'autre.

C'est bien pour cela que j'ai mis 2 macros au lieu de UserForm_Initialize.

Maintenant c'est terminé car comme je l'ai dit une seule question traitée par discussion.
Bonjour et merci pour votre aide. comme vous avez dit seule question traitée par discussion, j'ai donc crée une autre discussion mais j'ai pas recu de réponse.
ma préoccupation c'est pouvoir ajouter le prix, le lot et la date de péremption du tableau de la feuille reception au lstDevis du formulaire usfDevis. aider moi s'il vous plait
 

vanin

XLDnaute Occasionnel
Bonjour et merci pour votre aide. comme vous avez dit seule question traitée par discussion, j'ai donc crée une autre discussion mais j'ai pas recu de réponse.
ma préoccupation c'est pouvoir ajouter le prix, le lot et la date de péremption du tableau de la feuille reception au lstDevis du formulaire usfDevis. aider moi s'il vous plait
Bonjour et merci pour votre aide. comme vous avez dit seule question traitée par discussion, j'ai donc crée une autre discussion mais j'ai pas recu de réponse.
ma préoccupation c'est pouvoir ajouter le prix, le lot et la date de péremption du tableau de la feuille reception au lstDevis du formulaire usfDevis. aider moi s'il vous plait
Bonjour et merci pour votre aide. comme vous avez dit seule question traitée par discussion, j'ai donc crée une autre discussion mais j'ai pas recu de réponse.
ma préoccupation c'est pouvoir ajouter le prix, le lot et la date de péremption du tableau de la feuille reception au lstDevis du formulaire usfDevis. a

Bonjour aidez moi svp
 

Discussions similaires

Réponses
2
Affichages
894

Statistiques des forums

Discussions
311 721
Messages
2 081 927
Membres
101 842
dernier inscrit
seb0390