XL 2016 Ajouter des éléments à une listbox

vanin

XLDnaute Occasionnel
Bonjour, est il possible d'ajouter le prix, le lot et la date de péremption du tableau de la feuille reception au lstDevis du formulaire usfDevis
 

Pièces jointes

  • Devis Zambol3).xlsm
    84.7 KB · Affichages: 30
Solution
Bonjour vanin, le forum,

En effet il y avait une coquille dans le code de la macro cboFamille_Change.

Le tableau T commence à la ligne 2 donc au lieu de For i = 2 to UBound(tablo) il faut utiliser, fichier (6) :

For i = 1 To UBound(tablo)

Pour la dernière question c'est un autre problème, cherchez vraiment par vous-même.

Et si vous n'aboutissez pas dans une heure ou deux créez une nouvelle discussion.

A+

job75

XLDnaute Barbatruc
Bonjour vanin, le forum,

Je n'avais pas vu votre message.

La ListBox ne sert à rien, je l'ai supprimée et remplacée par 3 TextBox.

Voyez le fichier joint et ces 2 macros :
VB:
Private Sub cboFamille_Change()
Dim x$, y$, tablo, i&
x = LCase(cboFamille.Text): y = LCase(cboServices.Text)
txtQuantite = "": TextBox2 = "": TextBox3 = "": TextBox4 = ""
If x = "" Or y = "" Then Exit Sub
tablo = [T].Resize(, 9) 'tableau structuré, matrice, plus rapide
For i = 2 To UBound(tablo)
    If LCase(tablo(i, 1)) = x And LCase(tablo(i, 3)) = y Then
        txtQuantite = tablo(i, 4) 'Quantité
        TextBox2 = tablo(i, 9) 'Prix
        TextBox3 = tablo(i, 5) 'Lot
        TextBox4 = tablo(i, 6) 'Péremption
        Exit For
    End If
Next
End Sub

Private Sub cboServices_Change()
cboFamille_Change
End Sub
A+
 

Pièces jointes

  • Devis Zambol4).xlsm
    81.9 KB · Affichages: 9

vanin

XLDnaute Occasionnel
Bonjour vanin, le forum,

Je n'avais pas vu votre message.

La ListBox ne sert à rien, je l'ai supprimée et remplacée par 3 TextBox.

Voyez le fichier joint et ces 2 macros :
VB:
Private Sub cboFamille_Change()
Dim x$, y$, tablo, i&
x = LCase(cboFamille.Text): y = LCase(cboServices.Text)
txtQuantite = "": TextBox2 = "": TextBox3 = "": TextBox4 = ""
If x = "" Or y = "" Then Exit Sub
tablo = [T].Resize(, 9) 'tableau structuré, matrice, plus rapide
For i = 2 To UBound(tablo)
    If LCase(tablo(i, 1)) = x And LCase(tablo(i, 3)) = y Then
        txtQuantite = tablo(i, 4) 'Quantité
        TextBox2 = tablo(i, 9) 'Prix
        TextBox3 = tablo(i, 5) 'Lot
        TextBox4 = tablo(i, 6) 'Péremption
        Exit For
    End If
Next
End Sub

Private Sub cboServices_Change()
cboFamille_Change
End Sub
A+
Bonjour, Merci énormément pour votre aide, merci pout tout. en fait le formulaire usfDevis permet de saisir les commande des client en sélectionnant le produit dans le combo cboServices et en saisissant la quantité dans le textbox txtQuantite. ensuite on clique sur le bouton ajouter qui ajoute la famille, le produit, le colisage et le prix dans la lisbox lstDevis. enfin on clique sur le bouton valider qui ajoute les données du formulaire sur la facture de la page devis.
alors après votre modification lorsqu'on sélectionne le produit on a le prix, le colisage, la date de péremption et le stock du produit sélectionné, ce qui est intéressant mais il n'ya pas de textbox quantité pour la saisie de la quantité de produit demandée par le client. aussi on ne peut pas ajouter d'autres produits demandées lorsque le client commande plusieurs produits. en résumé on doit pouvoir ajouter tous les produits commandées avec leurs quantités, calculer prix x quantité et le tout ajouté sur la facture de la feuille devis.
il y'a aussi un souci au niveau des produits disponibles dans la combo cboServices. en effet comme maintenant il est possible de voir la quantité du produit sélectionné; cela permet de faire certaines vérification. le combobox tire sa source du tableau de la page réception. dans ce tableau il y'a deux saisies pour le produit TIKA 250ml_Bissap une saisie à la date du 19/05/2021 avec pour quantité 50 et l'autre à la date du 22/05/2021 avec pour quantité 35. des deux, c'est la saisie à la date du 19/05/2021 (date de saisie plus ancienne) avec pour quantité 50 qui devrait s'afficher lorsqu'on fait la sélection pour le produit TIKA 250ml_Bissap dans le combobox mais c'est plutôt le produit TIKA 250ml_Bissap saisie à la date du 22/05/2021 avec pour quantité 35 qui s'affiche.

il y'a deux saisies pour le produit TIKA 250ml_Ananas une saisie à la date du 19/05/2021 avec pour quantité 80 et l'autre à la date du 22/05/2021 avec pour quantité 30. des deux, c'est la saisie à la date du 19/05/2021 (date de saisie plus ancienne) avec pour quantité 80 qui devrait s'afficher lorsqu'on fait la sélection pour le produit TIKA 250ml_Ananas dans le combobox et c'est ce qui s'affiche donc pour le produit TIKA 250ml_Ananas pas de souci.

il y'a deux saisies pour le produit TIKA 250ml_Mangue une saisie à la date du 19/05/2021 avec pour quantité 01 et l'autre à la date du 22/05/2021 avec pour quantité 22. des deux, c'est la saisie à la date du 19/05/2021 (date de saisie plus ancienne) avec pour quantité 01 qui devrait s'afficher lorsqu'on fait la sélection pour le produit TIKA 250ml_Mangue dans le combobox et c'est ce qui s'affiche donc pour le produit TIKA 250ml_Mangue pas de souci.

il y'a quatre saisies pour le produit TIKA 250ml_tamarin une saisie à la date du 19/05/2021 avec pour quantité 25, une saisie à la date du 22/05/2021 avec pour quantité 50, une saisie à la date du 10/05/2021 avec pour quantité 60, et la dernière à la date du 05/05/2021 avec pour quantité 55. des quatre, c'est la saisie à la date du 05/05/2021 (date de saisie plus ancienne) avec pour quantité 55 qui devrait s'afficher lorsqu'on fait la sélection pour le produit TIKA 250ml_tamarin dans le combobox mais c'est plutôt le produit TIKA 250ml_tamarin saisie à la date du 19/05/2021 avec pour quantité 25 qui s'affiche.

il y'a quatre saisies pour le produit TIKA 250ml_Cocktail une saisie à la date du 19/05/2021 avec pour quantité 40, une saisie à la date du 22/05/2021 avec pour quantité 50, une saisie à la date du 10/05/2021 avec pour quantité 70, et la dernière à la date du 05/05/2021 avec pour quantité 100. des quatre, c'est la saisie à la date du 05/05/2021 (date de saisie plus ancienne) avec pour quantité 100 qui devrait s'afficher lorsqu'on fait la sélection pour le produit TIKA 250ml_Cocktail dans le combobox mais c'est plutôt le produit TIKA 250ml_tamarin saisie à la date du 19/05/2021 avec pour quantité 40 qui s'affiche.

la combobox devrait afficher que les produits dont la date de saisie est la plus ancienne.

merci de m'aider
 

ChTi160

XLDnaute Barbatruc
Bonjour vanin
Bonjour le Fil (job75) , le forum
Je crois que dans le fichier que j'avais fait je tenais compte de la date la plus ancienne pour alimenter le ComBobox , Tri des dates et remplissage du ComBobox (produits) en fonction de la date.
Il faudrait que j'y regarde.
Bonne journée
Jean marie
 

job75

XLDnaute Barbatruc
Bonjour vanin, Chti160, le forum,

Je vous ai déjà dit de travailler vous-même, si vous attendez que tout vous soit donné vous n'avancerez pas.
mais il n'ya pas de textbox quantité pour la saisie de la quantité de produit demandée par le client
Bien sûr que si, elle saute aux yeux et s'appelle txtQuantite.

Pour récupérer les données les plus anciennes il suffit de trier le tableau source sur la 2ème colonne.

Soit manuellement soit par ce code, voyez le fichier (5) :
VB:
[T].Sort [T].Columns(2), xlAscending, Header:=xlYes 'tri du tableau structuré
A+
 

Pièces jointes

  • Devis Zambol(5).xlsm
    94.9 KB · Affichages: 4

vanin

XLDnaute Occasionnel
Bonjour, j'essaie de travailler mais je n'y arrive pas car je suis debutant
Bonjour vanin, Chti160, le forum,

Je vous ai déjà dit de travailler vous-même, si vous attendez que tout vous soit donné vous n'avancerez pas.

Bien sûr que si, elle saute aux yeux et s'appelle txtQuantite.

Pour récupérer les données les plus anciennes il suffit de trier le tableau source sur la 2ème colonne.

Soit manuellement soit par ce code, voyez le fichier (5) :
VB:
[T].Sort [T].Columns(2), xlAscending, Header:=xlYes 'tri du tableau structuré
A+
Bonjour, et encore merci pour votre aide. la liste déroulante marche bien pour tous les produits sauf le TIKA 250ml_tamarin.
il y'a quatre saisies pour le produit TIKA 250ml_tamarin une saisie à la date du 19/05/2021 avec pour quantité 25, une saisie à la date du 22/05/2021 avec pour quantité 50, une saisie à la date du 10/05/2021 avec pour quantité 60, et la dernière à la date du 05/05/2021 avec pour quantité 55. des quatre, c'est la saisie à la date du 05/05/2021 (date de saisie plus ancienne) avec pour quantité 55 qui devrait s'afficher lorsqu'on fait la sélection pour le produit TIKA 250ml_tamarin dans le combobox mais c'est plutôt le produit TIKA 250ml_tamarin saisie à la date du 10/05/2021 avec pour quantité 60 qui s'affiche.
pour tous les autres produits c'est bon.
j'ai ajouté les textbox colisage et quantité demandée qui fonctionnement bien. ensuite j'ai ajouté un code au bouton ajouter afin que chaque fois qu'on clique sur le bouton ajouter la ligne s'affiche sur la facture (feuille devis). mais la ou je bloque c'est comment ajouter d'autres lignes à la suite de la première.
merci pour tout
 

Pièces jointes

  • Devis Zambol(5).xlsm
    81.6 KB · Affichages: 3

job75

XLDnaute Barbatruc
Bonjour vanin, le forum,

En effet il y avait une coquille dans le code de la macro cboFamille_Change.

Le tableau T commence à la ligne 2 donc au lieu de For i = 2 to UBound(tablo) il faut utiliser, fichier (6) :

For i = 1 To UBound(tablo)

Pour la dernière question c'est un autre problème, cherchez vraiment par vous-même.

Et si vous n'aboutissez pas dans une heure ou deux créez une nouvelle discussion.

A+
 

Pièces jointes

  • Devis Zambol(6).xlsm
    76.9 KB · Affichages: 8

vanin

XLDnaute Occasionnel
MERCI MERCI MERCI énormément merci du fond du cœur, merci pour tout, grâce à vous j'ai pu atteindre mon objectif. tout marche comme je veux. Que Dieu vous accorde beaucoup de succès dans votre carrière professionnelle.
 

Discussions similaires

Réponses
4
Affichages
531

Statistiques des forums

Discussions
315 132
Messages
2 116 589
Membres
112 798
dernier inscrit
nicoolio