XL 2010 Création de listes déroulantes interactive

  • Initiateur de la discussion Initiateur de la discussion jeanmi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jeanmi

XLDnaute Occasionnel
J’ai un onglet « liste articles »

Dans lequel, j’ai 3 colonnes, A, B et C avec des références, des désignations, en C des familles. Les plages A2 :C36 sont nommées « table articles », peut-être pas utile ?

J’ai dans l’onglet « Bon de Cde »

En colonne A, de A27 : A57 des références qui s’afficheront en fonction du choix sélectionné au niveau de désignation (colonne C) et qui ne s’affiche que s’il y a une quantité dans la colonne D, ça fonctionne.

J’ai en colonne B des familles de produit, à partir d’une liste déroulante.

Ce que je voudrais faire, si possible :

Actuellement la liste déroulante qui est affichée au niveau de désignation, en colonne C, prend en compte toutes les données qui sont définies dans l’onglet « liste articles »

Es qu’il est possible que la liste déroulante qui est au niveau de désignation, colonne C, n’affiche que les désignations qui correspondent à la famille sélectionnée au niveau de famille, colonne B ?

J’ai fait beaucoup d’essais, sans arrivé à trouver une solution.

On me dit peut-être tableau croisé dynamique, mais là je ne maitrise pas ni dans le cas d’une solution VBA.

Il faut que je puisse, simplement, par la suite ajouter des informations complémentaires à l’onglet liste articles. Peut-être que la construction de mon fichier n'est pas la bonne ?

Si joins mon fichier d’essai.

Merci pour votre aide.

Cordialement
 

Pièces jointes

Bonjour job75, merci pour l'appréciation. J'ai eu des maîtres sur ce forum, et des très bons, dont tu en fais partie. Je ne vous remercierai jamais assez pour cela. Maintenant, je pense que le problème soumis par jeanmi n'est qu'une partie de ce qu'il a en tête.
Je crois que la suite viendra. Cherchez à automatiser l'élaboration d'un bon de commande va forcément entraîner, à minima, la gestion de stock. Et puis je m'amuse, et si ça convient au demandeur, tant mieux.
Moi, ça me permet d'être occupé et de continuer à apprendre. Je suis trop heureux d'être utile à quelqu'un.
Bonjour @Piment à tous,

Je tiens à exprimer toute ma gratitude envers Piment pour le travail exceptionnel qu’il a réalisé. Son programme dépasse largement mes attentes et répond parfaitement à mes besoins, avec une simplicité et une efficacité qui me permettent de l’utiliser avec un grand plaisir.

Piment, ton approche et ta rigueur sont remarquables. Tu as non seulement résolu le problème que j’avais soumis, mais tu as aussi anticipé des fonctionnalités qui s’intègrent naturellement dans la suite logique du projet. C’est un travail qui témoigne d’un vrai sens du détail et d’une grande compétence.

Je suis d’autant plus touché que ce travail vient d’un compatriote d’outre-mer : avec un décale horaire de 8 h mais une connexion bien présente, entre nos deux iles. Cela ajoute une dimension particulière à ce projet, et je l’utiliserai avec respect et en gardant à l’esprit cette belle connexion de 14 000 km entre nous.

Un grand merci à toi, Piment, pour ton temps, ton engagement et cette contribution qui me sera précieuse. Et merci aussi à Job75 pour son soutien et ses conseils avisés.

Avec toute ma reconnaissance, à tous, Jean-Michel
 
Bonsoir à tous,
jeanmi, je te mets en pièces jointes le nouveau fichier avec les modifications demandées.
Je te mets également ton fichier Word avec les réponses à tes questions.
Si besoin d'explications, ne surtout pas hésiter.
Bonjour @Piment à tous,

Encore merci pour ce travail qui est trés bien pour moi.

Le fournisseur a adoré notre premier bon d’essai : il a même dit que si tous ses clients étaient aussi rigoureux, les commandes seraient sans problème et plus rapides à traiter. C’est grâce à toi, alors bravo.

Voici la dernière petite constatation, dans le fichier joint, J’ai mis les lignes en rouge et des images pour simplifier la lecture et éviter de te faire perdre trop de temps dans une recherche.

Cordialement
 

Pièces jointes

Bonjour @Piment à tous,

Encore merci pour ce travail qui est trés bien pour moi.

Le fournisseur a adoré notre premier bon d’essai : il a même dit que si tous ses clients étaient aussi rigoureux, les commandes seraient sans problème et plus rapides à traiter. C’est grâce à toi, alors bravo.

Voici la dernière petite constatation, dans le fichier joint, J’ai mis les lignes en rouge et des images pour simplifier la lecture et éviter de te faire perdre trop de temps dans une recherche.

Cordialement
Bonjour à tous;
jean Michel, merci pour les propos tenus dans ton post, ils me touchent. Heureux que cela te convienne. Je te mets ci-joint le fichier modifié.
Ne pas hésiter si besoin.
Bonne journée.
 

Pièces jointes

Bonjour à tous;
jean Michel, merci pour les propos tenus dans ton post, ils me touchent. Heureux que cela te convienne. Je te mets ci-joint le fichier modifié.
Ne pas hésiter si besoin.
Bonne journée.
Bonjour @Piment à tous,

Normalement tout fonctionne à merveille. Encore un grand merci.

Voici la liste des petites choses que j’ai adaptées, avec beaucoup de difficulté. Je ne suis pas du tout un expert comme toi.

un petit PB : même s'il n'y a pas d'adresse mail dans mes Paramètres : Il y a une adresse mail qui s'affiche un nom, prénon et @gmail.com sur l'onglet "Commande", dis moi ou modifier, je n'ai pas trouvé actuellement.

Cordialement
 

Pièces jointes

Dernière édition:
Bonjour à tous;
jean Michel, merci pour les propos tenus dans ton post, ils me touchent. Heureux que cela te convienne. Je te mets ci-joint le fichier modifié.
Ne pas hésiter si besoin.
Bonne journée.
Bonjour @Piment à tous,

je trouvais des solutions, surment pas trés bien, mais ça semble fonctionner.
voici le bilan en fichier joint.
Merci de l'aide pour les derniers petit points ou je ne trouve pas de solution.

Cordialement
 

Pièces jointes

Bonjour @Piment à tous,

Normalement tout fonctionne à merveille. Encore un grand merci.

Voici la liste des petites choses que j’ai adaptées, avec beaucoup de difficulté. Je ne suis pas du tout un expert comme toi.

un petit PB : même s'il n'y a pas d'adresse mail dans mes Paramètres : Il y a une adresse mail qui s'affiche un nom, prénon et @gmail.com sur l'onglet "Commande", dis moi ou modifier, je n'ai pas trouvé actuellement.

Cordialement
Bonjour à tous.
Jeanmi je ne suis pas un "expert". J'ai commencé comme toi, et comme toi j'ai essayé de comprendre et avec l'aide de ce forum j'ai appris à bricoler 2 ou 3 trucs qui m'ont énormément facilité ma vie professionnelle.

Concernant l'adresse mail qui ne s'efface pas, j'ai modifié les codes du bouton "Ajouter" pour permettre de saisir une adresse qui passe correctement sur la feuille. Et j'ai oublié de modifier les codes du bouton "Quitter" qui permet de vider les cellules de la feuille. Pour corriger, tu vas dans "Quitter") et tu remplaces "D" par "C" sur les lignes : "Wsc.Range("C2") = """...
Il faut modifier aussi dans la sub "Cdb_SaisirNouvelComde".

J'ai vu les modifications que tu as apportées : test et dis-moi.

Bonne journée à toi.
 
Bonjour à tous.
Jeanmi je ne suis pas un "expert". J'ai commencé comme toi, et comme toi j'ai essayé de comprendre et avec l'aide de ce forum j'ai appris à bricoler 2 ou 3 trucs qui m'ont énormément facilité ma vie professionnelle.

Concernant l'adresse mail qui ne s'efface pas, j'ai modifié les codes du bouton "Ajouter" pour permettre de saisir une adresse qui passe correctement sur la feuille. Et j'ai oublié de modifier les codes du bouton "Quitter" qui permet de vider les cellules de la feuille. Pour corriger, tu vas dans "Quitter") et tu remplaces "D" par "C" sur les lignes : "Wsc.Range("C2") = """...
Il faut modifier aussi dans la sub "Cdb_SaisirNouvelComde".

J'ai vu les modifications que tu as apportées : test et dis-moi.

Bonne journée à toi.
JeanMi, il est 8h30 chez nous. Le montant n'apparaît plus dans le textBox "Montant à régler" parce que tu as supprimé les codes : j'ai ramené les données du calcul de TVA et le montant TTC dans la colonne H de la feuille, et le textBox récupère la donnée. Pourquoi : parce que le tableau va s'agrandir au fur et à mesure que tu vas ajouter des articles.
Résultat : les lignes qui sont hors du tableau (ligne E16, E17, E18) vont se décaler en fonction. En procédant de la sorte, quel que soit le décalage, la cellule H2 et H3 récupèrent les 2 données systématiquement, et ensuite le textbox récupère le montant dans une cellule qui est fixe.

Passe une bonne nuit et fais-moi un retour.
 
JeanMi, il est 8h30 chez nous. Le montant n'apparaît plus dans le textBox "Montant à régler" parce que tu as supprimé les codes : j'ai ramené les données du calcul de TVA et le montant TTC dans la colonne H de la feuille, et le textBox récupère la donnée. Pourquoi : parce que le tableau va s'agrandir au fur et à mesure que tu vas ajouter des articles.
Résultat : les lignes qui sont hors du tableau (ligne E16, E17, E18) vont se décaler en fonction. En procédant de la sorte, quel que soit le décalage, la cellule H2 et H3 récupèrent les 2 données systématiquement, et ensuite le textbox récupère le montant dans une cellule qui est fixe.

Passe une bonne nuit et fais-moi un retour.
Bonjour @Piment à tous,

Oui, je comprends qu’il faut ne rien changer dans les feuilles. Mais ma logique était :

Les lignes ou il y a la TVA et le montant total évolues sur l’onglet « Commande » , mais si justement on recherche la dernière ligne de la colonne E on peut connaître la position des cellules TVA et montant total, donc pas besoin des cellules en colonne H et I ?

ne reste plus que l'affichage de du montant total qui n'est pas reporté dans l'UserForme.

j'ai 2 heures de libres ce matin donc , je travail sur la finalisation du programme.

Cordialement
 
Bonjour @Piment à tous,

Oui, je comprends qu’il faut ne rien changer dans les feuilles. Mais ma logique était :

Les lignes ou il y a la TVA et le montant total évolues sur l’onglet « Commande » , mais si justement on recherche la dernière ligne de la colonne E on peut connaître la position des cellules TVA et montant total, donc pas besoin des cellules en colonne H et I ?

ne reste plus que l'affichage de du montant total qui n'est pas reporté dans l'UserForme.

j'ai 2 heures de libres ce matin donc , je travail sur la finalisation du programme.

Cordialement
Jeanmi, le texBox de l'usf récupère les données dans la colonne H : c'est pourquoi il n'affiche plus rien si tu as modifé le code. Si tu veux procéder comme tu le dis, tu dois rechercher la dernière ligne de la colonne "E" à partir de la ligne où il y a le montant HT qui lui fait partie du tableau. Mais comme le tableau va bouger en fonction du nombre d'articles que tu y auras entrés????? C'est pourquoi j'ai procédé ainsi. Donc si tu veux alimenter le TextBox "Montant à régler, tu laisses comme c'était. Moi je n'ai pas trouvé comment faire puisque le tableau bouge en fonction des articles que tu y auras insérés. Pour info, il n'y a pas de données en colonne "I
 
Jeanmi, le texBox de l'usf récupère les données dans la colonne H : c'est pourquoi il n'affiche plus rien si tu as modifé le code. Si tu veux procéder comme tu le dis, tu dois rechercher la dernière ligne de la colonne "E" à partir de la ligne où il y a le montant HT qui lui fait partie du tableau. Mais comme le tableau va bouger en fonction du nombre d'articles que tu y auras entrés????? C'est pourquoi j'ai procédé ainsi. Donc si tu veux alimenter le TextBox "Montant à régler, tu laisses comme c'était. Moi je n'ai pas trouvé comment faire puisque le tableau bouge en fonction des articles que tu y auras insérés. Pour info, il n'y a pas de données en colonne "I
Bonjour @Piment à tous

Après beaucoup d'essais, j'ai mis un code qui semble fonctionner.
Les cellules H (Montant) en G c'est les désignations qui sont mises, que j'ai supprimées.

Code:
 ' Référence de la feuille "Commande"
    Set ws = ThisWorkbook.Worksheets("Commande")

    ' Récupère la valeur de la cellule H3
    'montant = ws.Range("H3").Value

    ' ##### Trouver la dernière ligne non vide de la colonne E #####
Dim DerniereLigneA As Long
DerniereLigneA = ws.Cells(ws.Rows.Count, "E").End(xlUp).Row
'MsgBox " derniére ligne trouvée " & DerniereLigneA
'MsgBox "Adresse de la cellule : " & ws.Cells(DerniereLigneA, 5).Address ' pour vérifier

' #### Récupérer la valeur de la dernière ligne non vide de la colonne E #####
montant = ws.Cells(DerniereLigneA, 5).Value
'MsgBox " Montant total trouvé : " & montant

    ' Affiche la valeur formatée en euros dans le TextBox "Txt_MontAReglerF"
    If IsNumeric(montant) Then
        Me.Txt_MontAReglerF.Value = Format(montant, "# ##0.00€") '#### remplacer , par . le 18/01/2026
        'MsgBox " montant qui devrait être reporté dans UserForme : " & Format(montant, "# ##0.00€")
    Else
        Me.Txt_MontAReglerF.Value = ""
    'MsgBox " là ça efface la case du montant dans l'UserForme "
    End If

Je vais faire réaliser des tests par mon fils afin de valider, mais avant si tu peux me donner des informations pour quelques points que j'ai listés dans le fichier joint.

En te remerciant par avance pour l'aide. Bonne journée

Cordialement
 

Pièces jointes

Bonjour @Piment à tous

Après beaucoup d'essais, j'ai mis un code qui semble fonctionner.
Les cellules H (Montant) en G c'est les désignations qui sont mises, que j'ai supprimées.

Code:
 ' Référence de la feuille "Commande"
    Set ws = ThisWorkbook.Worksheets("Commande")

    ' Récupère la valeur de la cellule H3
    'montant = ws.Range("H3").Value

    ' ##### Trouver la dernière ligne non vide de la colonne E #####
Dim DerniereLigneA As Long
DerniereLigneA = ws.Cells(ws.Rows.Count, "E").End(xlUp).Row
'MsgBox " derniére ligne trouvée " & DerniereLigneA
'MsgBox "Adresse de la cellule : " & ws.Cells(DerniereLigneA, 5).Address ' pour vérifier

' #### Récupérer la valeur de la dernière ligne non vide de la colonne E #####
montant = ws.Cells(DerniereLigneA, 5).Value
'MsgBox " Montant total trouvé : " & montant

    ' Affiche la valeur formatée en euros dans le TextBox "Txt_MontAReglerF"
    If IsNumeric(montant) Then
        Me.Txt_MontAReglerF.Value = Format(montant, "# ##0.00€") '#### remplacer , par . le 18/01/2026
        'MsgBox " montant qui devrait être reporté dans UserForme : " & Format(montant, "# ##0.00€")
    Else
        Me.Txt_MontAReglerF.Value = ""
    'MsgBox " là ça efface la case du montant dans l'UserForme "
    End If

Je vais faire réaliser des tests par mon fils afin de valider, mais avant si tu peux me donner des informations pour quelques points que j'ai listés dans le fichier joint.

En te remerciant par avance pour l'aide. Bonne journée

Cordialement
Bonjour à tous,
jeanmi, sur la base de ce que tu as proposé, je te propose plutôt le code suivant qui sécurise la recherche de la cellule de la feuille contenant le montant TTC pour l'envoyer dans le Txt_MontAReglerF :
VB:
'***********************Permet d'afficher le montant TTC dans le Txt_MontAReglerF *******************
 
 ' Référence de la feuille "Commande"

Set ws = ThisWorkbook.Worksheets("Commande")
Set Tbl = ws.ListObjects("Tbl_Commande")
' Dernière ligne du tableau (Total HT inclus) + 3 lignes
LigneMontantTTC = Tbl.Range.Row + Tbl.Range.Rows.Count - 1 + 3

montant = ws.Cells(LigneMontantTTC, "E").Value

Txt_MontAReglerF = montant
La recherche de la cellule se fait à partir du tableau. Là il peut bouger comme il veut, la cellule montant TTC sera toujours 3 lignes après le Montant HT. Cela sécurise le code.
Je te laisse modifier les codes si tu veux modifier le tableau "Détail commande". C'est en forgeant que l'on devient forgeron.
Si besoin je serais là.
Le volcan ne représente pas de danger pour le moment. La coulée de lave est pour le moment dans l'enclos.
Bone journée à toi.
bonne journée
 

Pièces jointes

Bonjour à tous,
jeanmi, sur la base de ce que tu as proposé, je te propose plutôt le code suivant qui sécurise la recherche de la cellule de la feuille contenant le montant TTC pour l'envoyer dans le Txt_MontAReglerF :
VB:
'***********************Permet d'afficher le montant TTC dans le Txt_MontAReglerF *******************
 
 ' Référence de la feuille "Commande"

Set ws = ThisWorkbook.Worksheets("Commande")
Set Tbl = ws.ListObjects("Tbl_Commande")
' Dernière ligne du tableau (Total HT inclus) + 3 lignes
LigneMontantTTC = Tbl.Range.Row + Tbl.Range.Rows.Count - 1 + 3

montant = ws.Cells(LigneMontantTTC, "E").Value

Txt_MontAReglerF = montant
La recherche de la cellule se fait à partir du tableau. Là il peut bouger comme il veut, la cellule montant TTC sera toujours 3 lignes après le Montant HT. Cela sécurise le code.
Je te laisse modifier les codes si tu veux modifier le tableau "Détail commande". C'est en forgeant que l'on devient forgeron.
Si besoin je serais là.
Le volcan ne représente pas de danger pour le moment. La coulée de lave est pour le moment dans l'enclos.
Bone journée à toi.
bonne journée
Bonjour @Piment à tous,

Pour être le plus claire possible voici mon scénario défini dans le doc joint.

Là je suis occupé pour les quatre premier jours de la semaine, donc je regarderai à la soirée si encore en forme, ou vendredi.

Cordialement
 

Pièces jointes

jeanmi, je comprends mieux ton process. Je regarde ça et j'essaie de faire au plus près de ton besoin. Je récapitule :
1°) Tu fais un devis pour ton client. Donc tu définis ton besoin en matériel.
2°) Tu cherches le ou les fournisseurs susceptibles de te fournir le matériel dont tu as besoin pour ton chantier : question : tous tes fournisseurs disposent du matériel dont tu as besoin pour un chantier ou certains fournisseurs sont "spécialisés" dans un type de fournitures ?
3°) Tu fais ta ou tes commandes. Quel est le N° du Devis que tu veux mettre dans le tableau : ton Devis ou celui de ton fournisseur (Potentiellement on peut mettre les 2) !
4°) Tu as besoin d'un exemplaire, sans les prix, pour ton responsable de chantier : on peut générer un bon de commande sans les prix en même temps que la génération de ta commande (à voir).
Dis-moi si j'ai bien compris.
En attendant ton retour je regarde ce que je peux faire pour me rapprocher au plus près de tes besoins.
L'idée est que cette appli te facilite le plus possible le travail : gain de temps, gain financier.
Cela rendra plus fluide l'accomplissement des tâches.
Bonne réception.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour