Copier selon liste déroulante - VBA

Bonjour,

Je me tourne vers vous aujourd’hui parce que je comprend pas comment résoudre mon problème.

Je vous met mon fichier en pièce jointe

17essai.xlsx (188.97 Ko)

Je n'utilise pour le moment que les 4 premières feuilles : "Mozilla", "Data", "Propriétés" et "Chaque jour".

Dans la feuille Mozilla se trouve une liste déroulante, je souhaite en choisissant les valeurs que je souhaite, qu'il y ai une sélection des lignes possédant ces valeurs dans la colonne G de la feuille "Data" (je peux changer de place la colonne si ça pose problème), puis copier cette sélection dans la feuille "Chaque jour".

Il faudrait que la copie dans la feuille "Chaque jour" se fasse en dessous s'il y a déjà des valeurs

J'avais également envisager une simple case où je rentre mon texte dans la feuille "Mozilla" si c'est plus simple.

Je vous remercie par avance pour votre aide parce que là je suis vraiment à la limite de mes connaissances.

J'espère avoir était assez clair et apprendre beaucoup grâce à vous !

Bonjour Funben le forum

Je ne connais pas le but mais une chose me surprend.

Tu mets une liste multiselection pourquoi???

Alors qu'en dessous tu écris que si cela ne va pas tu avais possibilité de mettre simplement du texte dans une cellule ou un textbox??

le but c'est quoi??

De copier dans la feuille Chaque jour les lignes correspondant à ta sélection dans la listbox??

Copie donc des lignes de la feuille data si la colonne G correspond à la valeur sélectionnée en liste déroulante dans la feuille ChaqueJour c'est bien cela?? la sélection de toutes les lignes est donc inutile???

à te relire

Papou

Bonjour Funben le forum

bon pas de réponse alors j'ai fait comme je pense

a toi de tester et tu me rediras, mais dans la liste qui remplie la listbox tu as plein de doublons !!!!

c'est peut-être normal mais bon je te le signale

a+

Papou

46funben-v1.xlsm (209.78 Ko)

Bonjour Papou,

Merci pour ton fichier, il fait exactement ce que je désire ! Une pure merveille, tu me donne un sacré coup de pouce

Merci de m'avoir signaler les doublons, je vais y remédier

(Désolé de pas avoir répondu plus tôt)

A bientôt

Re Funben le forum

oui il fait ce que tu souhaites et pourtant je ne sélectionne aucune ligne !!!!

Attention aussi à l'utilisation, je recompose la liste systématiquement quand tu changes un élément de la listbox

au cas ou tu irais mettre des annotations ou autre dans la feuille Chaque jour

a+

Papou

Encore merci Papou,

J'ai bien regarder ton code (et pour être sincère c'est au dessus de mes capacités actuelles)

Mais j'aimerais savoir comment tu as fais pour l'attribuer à la liste déroulante ?

Et dans le meilleur des cas comment est ce que je peux attribuer ce code à une autre liste (mon objectif est d'en créer 4 comme celles-ci dans le fichier)

Et je suppose que oui, mais est-ce que si je rajoute des valeurs dans la feuille "Data" il va les prendre en compte ?

Voila, encore une fois je te remercie

Bonsoir funben le forum

pour faire 4 liste ou 100 listes c'est rien du tout, mais avec ce que tu as demandé tu vas vite être limité.

je t'ai posé des questions ce matin et tu n'as pas répondu, comment veux tu que je te conseille utilement?

Le but de ton fichier c'est quoi? Transfèrer des lignes et après? ces lignes doivent être cumulatives?

Une liste sera toujours en partant d'une liste vers une seule feuille??

Bref si tu expliques, je te guide si tu ne le fais pas je réponds simplement a tes demandes, mais ma réponse de ce matin va vite devenir ingérable si tu as des lignes cumulatives source de plusieurs feuilles différentes

Voilà si tu as envie d'expliquer dans le fichier de base tu rajoutes des pavés texte et tu fais ta demande, je te répondrai

a+

Papou

Bonjour funben le forum

Voilà ton fichier avec le commentaire en vert dans la pavé texte de ta feuille

Explication pour remplir ta listbox et pour sélectionner les lignes

a+

Papou

24funben-v2.xlsm (210.75 Ko)

Bonjour Papou,

Je vais essayer d'expliquer mon fichier, et ma méthode pour le tenir à jour :

Le contexte, je travaille dans une entreprise agroalimentaire, qui souhaite faire des inventaires tournants de ses composants.

Chaque lundi matin , je fais une extraction d'une base de donnée (interne à mon entreprise) dans la feuille "Data"

Donc les valeurs que je retrouve dedans sont des valeurs brutes.

Dans la colonne A : PXRART : il s'agit de mon produit fini

Dans la colonne B : PXRVL : il s'agit de préférence de production (il doit être le même que la colonne E)

Dans la colonne C : PXRCMP : il s'agit des composants de mon produit fini

Dans la colonne D : PXRTRI : il s'agit de code de tri (interne à l'entreprise et totalement inutile dans mon travail, mais que je dois inclure)

Dans la colonne E : VP prio : voir colonne B

Dans la colonne F : Ligne : c'est comme pour la colonne D, je dois le mettre

Dans la colonne G : Recette : il s'agit de la recette de fabrication du produit fini

Dans la colonne H : Sous famille : il s'agit de code qui regroupe plusieurs composants

En gros, nous avons une interface qui nous dit qu'elle recette va être produite à un instant, c'est grâce à cela que je peux sélectionner des valeurs dans la feuille "Mozilla", c'est les recette en cours de production que je sélectionne.

Mon but, grâce à ces données est de sélectionner les recettes en cours de production, pour dire que les composants de la colonne C qui la composent ne peuvent pas être comptables. Et donc je pourrais compter tous les autres composants.

Pour ce faire je souhaite créer 4 listes de recettes (classer selon les lignes de la colonne F de la feuille "Data") :

  • Si la valeur de colonne F est A11, A12, A13 ou A14 --> les V0 correspondantes vont dans une première liste
  • De même avec les valeurs A22, A23 et A24 dans une seconde liste
  • A32, A33 et A34, dans une troisième
  • Et A41, A42, A43 et A44 dans une quatrième

Ces listes doivent se trouver sur la feuille "Mozilla" pour qu'on puisse les sélectionner selon la production.

Je peux créer ces listes manuellement car elles ne changent pas souvent.

Le principe :

Dès lors que je sélectionne une recette (V0) sur la feuille "Mozilla" il faut copier toutes les lignes de la feuille "Data" vers la feuille "Chaque jour" sauf les lignes contenant la recette sélectionnée. Pour faire simple, dans la feuille "Chaque jour", je dois tout retrouver sauf les valeurs sélectionnées

Ensuite, il faut que dans la feuille "Comptable du jour" :

  • Je vienne classer mes composants de la feuille "Chaque jour" selon leur sous famille
  • Donc si j'ai un composant appartenant à la sous famille 6340 dans la feuille "Chaque jour", il va devoir être classer dans la colonne F de la feuille "Comptable du jour"
  • La liste des sous famille, n'est pas censée changer, mais si elle pouvait se créer automatiquement à partir des valeurs extraites de la colonne H de la feuille "Data" ça serait top.

Une fois tous les composants rangés dans la feuille "Comptable du jour", il faut les trier par ordre croissant.

Une fois ce tri de fait, je vais leur faire subir une contrainte temporelle, en effet on ne essaie de répartir au mieux notre inventaire sur tout un mois. Pour ce faire on a défini des sous famille à compter par semaine (ex : la semaine 1 du mois on compte les sous famille 901, 616 et 5051, la semaine 2 : les sous famille 6310, 6315 et 5081 ...)

Et enfin, dans la feuille "Impression" je reprends les valeurs ayant répondu au critères de temps.

On refait une petite mise en page (en ajoutant une colonne entre chaque sous famille de comptage) et on imprime la feuille.

J'espère avoir suffisamment détaillé le fichier et j'espère avoir était assez clair, si j'ai mal expliquer quelque chose n'hésite pas.

28fichier-excel.xlsm (225.80 Ko)

Bonjour Fuben le forum

une première remarque

Pour faire simple, dans la feuille "Chaque jour", je dois tout retrouver sauf les valeurs sélectionnées

c'est exactement l'inverse de ce que je t'ai fait, ou alors je ne comprends rien???

à te relire

a+

Papou

PS: ton fichier joint dans le dernier post je n'arrive pas à l'ouvrir il plante systématiquement et ne peut être réparé!!!!

Bonjour Papou,

Oui c'est l'inverse, mais avec ta version ça peut fonctionner (j'ai juste une étape de comparaison des composant en cours de production par rapport à la totalité des composants).

Je te refais un fichier tout propre dès que j'arrive à mon travail (vers 9h15)

Merci de ton aide

Re Funben le forum

pour la création des listes A10 A20 etc. c'est fait dans Mozilla mais je pense que ce n'est pas ce que tu veux, enfin tu ouvres tu cliques et tu me redis, moi j'ai fait des listes avec toutes les colonnes de Data!!!! ????

à tester

a+

Papou

10funben-v3.xlsm (219.28 Ko)

Re bonjour Funben,

bon alors j'essaye de suivre mais franchement quand je lis

- Donc si j'ai un composant appartenant à la sous famille 6340

je cherche donc une colonne sous famille , n'existe pas, je cherche après dans la feuille 6340 , bah pareil n'existe pas dans la feuille

c'est comme les VO , c'est quoi?? Je suppose que c'est le contenu de la colonne G de data mais un coup tu l'appelles recette le coup d'après VO donc moi je cherche à comprendre.

Tu connais ton fichier alors pour toi c'est simple, mais moi je ne peux pas trouver ce qui n'existe pas.

Alors point par point on va avancer, mais pour le moment je ne comprends rien et pourtant j'ai vu que tu as bien essayé de m'expliquer mais tu as du oublié des explications qui pour toi te paraissaient évidentes, qui pour quelqu'un qui découvre ton fichier ne l'est pas du tout.

a+

Papou

Bonjour Papou,

Oui excuse moi, pour moi ce sont des choses évidentes et je me rend compte que c'est super abstrait en fait ^^

En fait une recette est codé en V0, donc chaque code commençant par V0 fait référence à une recette.

Je pense, qu'il sera plus simple d'avancer étape par étape.

Je vais essayer de détailler le plus possible

Je te met en pièce jointe une copie propre du fichier et je t'explique ce qu'il y a dedans.

Pour l'instant j'utilise que les 4 premières feuilles (Mozilla, Data, Propriétés et Chaque jour)

Tout d'abord je commence par utiliser la feuille "Data", dans celle-ci je viens extraire mes données de mon serveur (dans celle-ci je trouve les colonnes A à D), c'est moi qui forme les autres colonnes par la suite.

Ensuite c'est grâce à la feuille "Propriétés" que je peux remplir mes colonne E, F, G et H de la feuille "Data", je fais juste une fonction RechercheV.

A ce moment là j'ai ma feuille "Data" qui est complète.

Pour la résumé par colonne :

  • A : code du produit fini ( dans un produit fini, on retrouve plusieurs composants (colonne C)
  • B : code de production (par la suite on filtrera selon les VP prio de la feuille "Propriétés") [pourquoi on filtre ? : parce qu'un produit fini peut avoir plusieurs code de production, mon objectif est qu'il y en ai que 1]
  • C : composant du produit fini (j'ai remplacé les V0 par d'autres code (voir feuille "Propriétés") pour enlever les ambiguïté), on retrouve plusieurs composants dans une même recette [par exemple pour fabriquer un yaourt il faut : du lait, un pot en plastique, un opercule ...]
Donc maintenant dans la colonne C on ne retrouve que des composants avec des valeurs en chiffres (plus de lettres)
  • D : code de tri (on ne l'utilisera pas)
  • E : VP prio : si le contenu est différent à la colonne B, il faut supprimer la ligne (par exemple : ligne 204 -> colonne B : A1 et colonne E : A1 donc on garde la ligne; mais ligne 205 -> colonne B : A2 et colonne E : A1 donc on supprime la ligne)
  • F : ligne : ligne de production du produit fini : on s'en servira après pour classer
  • G : recette : alors là ça devient compliqué : une recette peut contenir plusieurs produits fini (par exemple : la recette V03500 permet de fabriquer le produit fini : 76565, 76567, 76574 et 90297) et moi je vais travailler par la suite grâce à ces recette
  • H : CODSFM : c'est un code en lien avec les composants, un code SFM regroupe plusieurs composants

Dans la feuille "Data", il faut supprimer toutes les lignes possédant un #N/A dans la colonne G

Dans la feuille "Mozilla", j'ai créer des liste déroulante à sélection multiple à partir de la feuille "Propriétés"

Ces listes sont créer dans la feuille "propriétés" :

  • liste 1 : on retrouve toutes les V0 (recette) de la colonne C (feuille "propriétés") selon la colonne D (A11, A12, A13 et A14) --> j'ai juste fait un filtre sur la colonne D et j'ai copier les données
  • de même pour les liste 2, 3 et 4

Ce que je souhaite :

Dans la feuille "Chaque jour" je viens copier toute ma feuille "Data"

lorsque je sélectionne une valeur dans la liste déroulante dans la feuille "Mozilla", ça retire toutes les valeurs correspondantes dans la feuille "Chaque jour"

Par exemple : si je sélectionne V03951 dans la feuille "Mozilla" dans la liste 1, je vais retrouver dans la feuille "Chaque jour" toute la feuille "Data" sauf les lignes possédant V03951 dans la colonne G.

J'espère avoir réussi à expliquer clairement :/

N'hésite pas à me demander si besoin

EDIT : si tu veux que je fasse des captures d'écran expliquées pour te montrer les mouvements que je souhaite il n'y a pas de soucis

13extraction.xlsx (601.01 Ko)

Re Bonjour Funben le forum

dans le fichier que tu m'as envoyé il n'y a que des #NA ????? dans EFGH normal????

a+

Papou

Il y en a beaucoup dans les premières lignes, mais après il y a bien des valeurs

EDIT : Le fichier en supprimant les doublons des listes en pièce jointe

7extraction.xlsx (610.20 Ko)

Re Bonjour Funben le forum

bon alors la première étape devrait être la création des listes dans la feuille Mozilla

1) Alors si tes listes sont toujours les mêmes ok mais s'il peut y avoir des différences, il faut le faire en automatique non??? (cela me paraît indispensable)

2) Ta feuille Data sur 7425 lignes il y a effectivement pas beaucoup de #NA seulement 2312 !!!!!!! dans ce cas on fait quoi??

on ne tient pas compte des lignes qui sont #NA?? pour créer les listes en automatique???

3) Ensuite on fait quoi? on retire de la liste de la feuille Data les lignes #NA et aussi les lignes qui possèdent les références sélectionnées dans les 4 listes créées??

on va commencer par là et après on verra, réponds précisément STP

Pour les photos capture d'écran, non je sais lire, si tu dis tout clairement je comprends assez bien le français.

a+

Papou

Je vais répondre dans l'ordre :

1) Oui les faire en automatique serait bien

2) Non on tient pas compte des lignes possédant des #N/A dans la colonne G, on pourrait supprimer les lignes avec cette valeur dans la colonne G.

Dans les listes il doit y avoir que des valeurs commençant par un V

3) Je ne comprends pas très bien ta demande, parles-tu des références sélectionnées dans la feuille "Mozilla" ?

Dans tous les cas, la feuille "Data" doit juste servir de base de donnée.

C'est données sont copiées dans la feuille "Chaque jour", et si une valeur est sélectionnée dans la feuille "Mozilla", ça la retire de la feuille "Chaque jour".

Merci

Re Funben le forum

ton fichier avec un premier travail à tester les listes et le nettoyage

a+

Papou

14funben-v4.xlsm (620.72 Ko)

Re Papou,

Ce que tu as fait est très bien, mais je ne comprends pas 2 choses :

  • Pourquoi est-ce que la feuille "Propriétés"' est vide ? Les données qu'y sont dedans ne sont pas censés être effacées
  • Est-ce normal qu'après avoir cliquer sur le bouton liste, rien ne se passe lorsque je clique sur "valider la sélection" ?

En tout cas merci pour ton travail

Rechercher des sujets similaires à "copier liste deroulante vba"