Extraction de données sur une nouvelle feuille Excel
vlxh
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
vlxh Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
vlxh Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai profité de cette longue période d'inactivité pour peaufiner la matrice de mon stock de vins, étant restaurateur :)
Je bloque sur une étape, si vous pouviez m'aider !
J'ai une feuille "Commandes" sur laquelle je souhaiterai extraire les lignes de plusieurs feuilles différentes, chaque feuille représentant une régions viticole, ainsi que les vins blancs, rosés et champagnes.
Dans cette feuille, j'y ai crée une liste déroulante correspondant à l'ensemble de mes fournisseurs.
Je n'ai pas besoin de toutes les infos de mes tableurs, j'aimerais y retrouver le nom du vin "Appellation", le millésime "Millésime", le prix d'achat HT "PAHT" et le nombre de commandes prévues "COM.
Donc dans l'idée ce serait :
Sur la feuille "Blancs" par exemple :
Si la colonne T est supérieur à 0 et que la colonne F correspond à la cellule $A$2 de ma liste fournisseur alors j'extraie mes 4 critères spécifiés plus haut.
La page commande m'affichant donc selon le fournisseurs, tout les produits de toutes les régions que je souhaite commander.
Ce n'est sûrement pas clair comme ça j'espère pouvoir être plus précis en répondant à vos questions.
Merci infiniment !
Alexandre

.
J'ai profité de cette longue période d'inactivité pour peaufiner la matrice de mon stock de vins, étant restaurateur :)
Je bloque sur une étape, si vous pouviez m'aider !
J'ai une feuille "Commandes" sur laquelle je souhaiterai extraire les lignes de plusieurs feuilles différentes, chaque feuille représentant une régions viticole, ainsi que les vins blancs, rosés et champagnes.
Dans cette feuille, j'y ai crée une liste déroulante correspondant à l'ensemble de mes fournisseurs.
Je n'ai pas besoin de toutes les infos de mes tableurs, j'aimerais y retrouver le nom du vin "Appellation", le millésime "Millésime", le prix d'achat HT "PAHT" et le nombre de commandes prévues "COM.
Donc dans l'idée ce serait :
Sur la feuille "Blancs" par exemple :
Si la colonne T est supérieur à 0 et que la colonne F correspond à la cellule $A$2 de ma liste fournisseur alors j'extraie mes 4 critères spécifiés plus haut.
La page commande m'affichant donc selon le fournisseurs, tout les produits de toutes les régions que je souhaite commander.
Ce n'est sûrement pas clair comme ça j'espère pouvoir être plus précis en répondant à vos questions.
Merci infiniment !
Alexandre

.

A voir également:
- Extraction de données sur une nouvelle feuille Excel
- Darkino nouvelle adresse - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Trier des données excel - Guide
3 réponses
Bonjour.
Comme toujours, il faut joindre le fichier Excel, et non de simples images !
Comme toujours, il faut joindre le fichier Excel, et non de simples images !
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
5) Tu reviens dans ta discussion sur CCM, et dans ton message tu fais "Coller".
=>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
Il existe aussi :
1) https://mon-partage.fr/
2) https://www.transfernow.net/
... (suite)
- 1) Au lieu d'avoir au départ des feuilles par région viticole, n'était-il pas possible d'avoir directement des feuilles par fournisseur ?
- 2) Sais-tu utiliser les TCD (tableaux croisés dynamiques) ?
- 3) Connais-tu VBA et sais-tu écrire des macros ?
Bonsoir à nouveau,
le but principal de ma matrice est de représenter ma carte des vins le plus fidèlement possible, je préférerais garder cette mise en page, les commandes n'étant qu'une partie accessoire à l'ensemble.
Je reste assez limité dans mes connaissances, mais j'apprends assez vite sur internet et je peux me faire aider, la seule chose c'est que je ne sais pas quoi exactement chercher dans ce cas précis :))
Merci beaucoup !
le but principal de ma matrice est de représenter ma carte des vins le plus fidèlement possible, je préférerais garder cette mise en page, les commandes n'étant qu'une partie accessoire à l'ensemble.
Je reste assez limité dans mes connaissances, mais j'apprends assez vite sur internet et je peux me faire aider, la seule chose c'est que je ne sais pas quoi exactement chercher dans ce cas précis :))
Merci beaucoup !
Salut,
Depuis hier soir, j'ai une idée, mais, j'ai du mal avec VBA. J'étais bloqué sur une instruction toute bête.
Je te donne mon algo.
Premièrement, on nomme les tableaux des feuilles de chaque type de vins (Blancs, etc.) sans prendre les en-tête en compte. Donc, pour les blancs, créer une plage nommée de A3 à T23.
Ensuite, on conserve l'adresse de la première ligne et de la dernière ligne. On va faire une boucle FOR avec ces 2 valeurs.
On crée des variables numériques qui récupèrent l'adresse colonne des éléments que tu veux + l'attribut fournisseur.
J'ai pensé, en A2, à créer une combobox. Ainsi, avec la méthode change() de la combobox, le tableau est mis à jour en parcourant chaque feuilles des types de vins.
Quand on parcourt le tableau des types de vins, on vérifie SI le fournisseur de la ligne en cours de test correspond au fournisseur sélectionné dans la combobox ET SI la colonne COM est > 0. Si c'est le cas, on ajoute les 4 éléments (Appellation, Millésime, PAHT, et COM) correspondant.
Même si ça restera toujours discutable car une forme de base de données ne fera jamais l'unanimité. Je pense que c'est possible de faire ce que tu veux.
En fait, je bloque parce que j'imagine que la taille des plages n'est pas la même, donc chaque feuille des types de vins a sa plage. Et je ne sais pas parcourir un array avec un For Each qui a 2 éléments par ligne (la feuille, la plage). Mais, je crois qu'on peut créer un objet personnalisé.
Également, on peut mettre un drapeau en place qui serait rouge tant que la plage des tableaux des types de vins n'est pas à jour car, je suppose que ces tableaux sont amenés à changer de taille. Une fois les mises à jour faites, le drapeau devient vert. On peut même ajouter une MSGBOX qui l'indique clairement.
Depuis hier soir, j'ai une idée, mais, j'ai du mal avec VBA. J'étais bloqué sur une instruction toute bête.
Je te donne mon algo.
Premièrement, on nomme les tableaux des feuilles de chaque type de vins (Blancs, etc.) sans prendre les en-tête en compte. Donc, pour les blancs, créer une plage nommée de A3 à T23.
Ensuite, on conserve l'adresse de la première ligne et de la dernière ligne. On va faire une boucle FOR avec ces 2 valeurs.
On crée des variables numériques qui récupèrent l'adresse colonne des éléments que tu veux + l'attribut fournisseur.
J'ai pensé, en A2, à créer une combobox. Ainsi, avec la méthode change() de la combobox, le tableau est mis à jour en parcourant chaque feuilles des types de vins.
Quand on parcourt le tableau des types de vins, on vérifie SI le fournisseur de la ligne en cours de test correspond au fournisseur sélectionné dans la combobox ET SI la colonne COM est > 0. Si c'est le cas, on ajoute les 4 éléments (Appellation, Millésime, PAHT, et COM) correspondant.
Même si ça restera toujours discutable car une forme de base de données ne fera jamais l'unanimité. Je pense que c'est possible de faire ce que tu veux.
En fait, je bloque parce que j'imagine que la taille des plages n'est pas la même, donc chaque feuille des types de vins a sa plage. Et je ne sais pas parcourir un array avec un For Each qui a 2 éléments par ligne (la feuille, la plage). Mais, je crois qu'on peut créer un objet personnalisé.
Également, on peut mettre un drapeau en place qui serait rouge tant que la plage des tableaux des types de vins n'est pas à jour car, je suppose que ces tableaux sont amenés à changer de taille. Une fois les mises à jour faites, le drapeau devient vert. On peut même ajouter une MSGBOX qui l'indique clairement.
Hello !
Merci beaucoup, j’ai compris l’idée !
Moi ça me va complètement le concept du drapeau m’indiquant une Maj de la plage nécessaire, comme je n’effectue qu’une commande globale dans le mois ce n’est pas du tout dérangeant.
J’ai bien conscience que le format de ma matrice ne soit pas l’idéal, je ne pensais pas aller aussi loin dans la programmation lorsque je l’ai pensé, ça devait resté un outil standard d’inventaire, que je me suis mis à améliorer petit à petit ahah
Merci beaucoup, j’ai compris l’idée !
Moi ça me va complètement le concept du drapeau m’indiquant une Maj de la plage nécessaire, comme je n’effectue qu’une commande globale dans le mois ce n’est pas du tout dérangeant.
J’ai bien conscience que le format de ma matrice ne soit pas l’idéal, je ne pensais pas aller aussi loin dans la programmation lorsque je l’ai pensé, ça devait resté un outil standard d’inventaire, que je me suis mis à améliorer petit à petit ahah
Bonjour.
J'ai vu que tu as déjà une première macro ...
Ce qu'il faut, c'est écrire une deuxième macro, qui va explorer chacune des feuilles pour retrouver le nom du fournisseur sélectionné et les lignes concernant ce dernier, pour afficher les 4 données qui t'intéressent.
Je te signale que la liste déroulante en A2 a comme source la plage Listes!$E$1:$E&13 alors que tu aurais pu utiliser la plage type_fournisseur ou la plage fournisseurs.
Dans les 3 cas, ce serait plus agréable que cette colonne E soit triée.
Et à force de développer ton fichier, tu as fini par créer de nombreux doublons dans tes plages nommées, ce qui n'est pas une très bonne chose (sauf bien entendu si cela est indispensable ) :
RBLANCS et RBIOBLANCS ......................... L3:L23
RBOUR et RBIOBOUR .................................. L3:L11
RNATURE et RNATURE BOUR .................... M3:M11
RCONBOUR et RCONVBOUR ...................... N3:N11
type_fournisseur et fournisseurs .... E1:E16 et E1:E17
VINS, VINSROSES et VINSROSES1 ..... A3:L3 et A3:L4
RBIOEG, RBIOEGROSES et REGROSES ....... P3:P4
RBIOMG, RBIOMGROSES et RMGROSES ... Q3:Q4
RBIOHG et RHGROSES ........................ R3:R4 et R3:R5
Enfin les plages VINSALS et VINSALSACE ne sont pas définies ...
J'ai vu que tu as déjà une première macro ...
Ce qu'il faut, c'est écrire une deuxième macro, qui va explorer chacune des feuilles pour retrouver le nom du fournisseur sélectionné et les lignes concernant ce dernier, pour afficher les 4 données qui t'intéressent.
Je te signale que la liste déroulante en A2 a comme source la plage Listes!$E$1:$E&13 alors que tu aurais pu utiliser la plage type_fournisseur ou la plage fournisseurs.
Dans les 3 cas, ce serait plus agréable que cette colonne E soit triée.
Et à force de développer ton fichier, tu as fini par créer de nombreux doublons dans tes plages nommées, ce qui n'est pas une très bonne chose (sauf bien entendu si cela est indispensable ) :
RBLANCS et RBIOBLANCS ......................... L3:L23
RBOUR et RBIOBOUR .................................. L3:L11
RNATURE et RNATURE BOUR .................... M3:M11
RCONBOUR et RCONVBOUR ...................... N3:N11
type_fournisseur et fournisseurs .... E1:E16 et E1:E17
VINS, VINSROSES et VINSROSES1 ..... A3:L3 et A3:L4
RBIOEG, RBIOEGROSES et REGROSES ....... P3:P4
RBIOMG, RBIOMGROSES et RMGROSES ... Q3:Q4
RBIOHG et RHGROSES ........................ R3:R4 et R3:R5
Enfin les plages VINSALS et VINSALSACE ne sont pas définies ...
Merci Raymond, je viens de trouver sur internet comment épurer tout cela (je pars vraiment de loin ;D)
https://www.cjoint.com/c/KEfaRIErGsI
Comment puis-je m'y prendre pour la macro ?
https://www.cjoint.com/c/KEfaRIErGsI
Comment puis-je m'y prendre pour la macro ?
Merci de votre réponse !
Ci-joint le fichier :
https://www.cjoint.com/c/KEewnGzGpUI