Extraction de données d'un tableau

rafi382 - 12 févr. 2014 à 12:27
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 14 févr. 2014 à 16:52
Bonjour,

Je cherche à trouver une solution au problème suivant:
J'ai un tableau qui regroupe dans une première colonne les pays de vente d'un produit, dans une seconde le code du produit vendu, dans une troisième le domaine d'activité de l'acheteur, dans une quatrième le volume de la commande acheté par le client en 2014 et dans une cinquième le volume acheté en 2013. Mon problème est que je souhaite sommé les ventes ratachées à un secteur d'activité (dépendant du domaine d'activité de l'acheteur). Une difficulté supplémentaire veut que deux secteurs différents peuvent faire appel au même produit (même code produit) donc on ne peut pas selectionner les ventes d'un secteur en fonction uniquement du code produit car sinon on compterait deux fois les produits qui sont vendus à duex secteurs différents. Je ne sais pas codé en VB dans excel donc je voulais savoir si quelqu'un à une idée de comment faire cette opération.

Bonne journée à vous et merci par avance

6 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 févr. 2014 à 12:55
Bonjour,
" Je ne sais pas codé en VB dans excel"
Je crains fort que tu devras alors commencer par apprendre au moins les rudiments de VBA/Excel (ce que sont les objets Excel, leurs propriétés, les variables, leur type, etcc ...)
Tu es ici sur un forum de développement et aucun développement n'est possible sans la connaissance de ces rudiments.
Lorsque tu auras acquis ces bases essentielles, ce sera avec plaisir que de nombreux développeurs t'aideront à surmonter, dans le cours de ton développement, telle ou telle autre difficulté spécifique et parfaitement isolée, accompagnée du code tenté et qui la concerne seule.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
12 févr. 2014 à 12:59
Bonjour,

Déjà.. j'ai déplacé ta discussion dans VBA ( rubrique dédiée à la création de macros sous Excel) car je pense, lorsque tu parles de tableau, qu'il s'agit d'un document excel.
Dis moi si je me suis trompé.. (peut être programmes-tu en VB6 ou en vb.net) ..dans ce cas je déplacerait le sujet dans la rubrique la plus adaptée


Ensuite... la description de ton problème est un peu "'fouillis".
Donc essayons de reformuler différemment ( des phrases courtes et facilement compréhensibles, un texte aéré (pas un pavé de 40 lignes), si besoin des exemples de lignes de ton tableau..;etc..)

En attendant..
Je comprend que Tu as 5 Colonnes:
1 - les pays de vente d'un produit
2 - le code du produit vendu
3 - le domaine d'activité de l'acheteur
4 - le volume de la commande acheté par le client en 2014
5 - le volume acheté en 2013

jusque là..ça va..

Par contre.. pour ce qui est de ton souci...
je souhaite sommé les ventes ratachées à un secteur d'activité (dépendant du domaine d'activité de l'acheteur). Une difficulté supplémentaire veut que deux secteurs différents peuvent faire appel au même produit (même code produit) donc on ne peut pas selectionner les ventes d'un secteur en fonction uniquement du code produit car sinon on compterait deux fois les produits qui sont vendus à duex secteurs différents

Peux-tu essayer de reformuler (au moyen d'un exemple concret peut-être) ?

et puis.. Le secteur d'activité c'est la même chose que le domaine d'activité de l'acheteur ?

Et au final.. ce que tu souhaites c'est la somme des volumes achetés (en 2014) par Domaine d'activité et par produit ?

Si c'est bien sous excel que tu travailles.. pourquoi ne pas utiliser directement les formules ou même un tableau croisé dynamique ?



0
Merci pour ton aide Jordan. Je reconnais que mon principal problème est de ne rien connaître à l'informatique donc ucfoutu tu as raison mais je reviendrai, en suivant tes conseils, dans 15 ans et comme mon stage se termine dans 6 mois, ça risque de ne plus servir à rien.

C'est exactement ça Jordan. Par exemple, j'ai (je garde ta notation pour les colonnes):
1- Italy
2- p4230
3-Automotive cycle
4-26
5-24

Par exemple, je veux calculer (pour un seul pays) le volume des ventes de la branche plastique de specialité. Cette branche regroupe les références p4230 (celle de l'exemple) plus d'autres (p4231, p4232). Mais p4230 peut aussi faire parti de la branche plastique optique: ça depend du secteur d'activité de l'acheteur (si il est classé dans l'activité optique, alors les ventes de p4230 seront à compter dans les ventes de la branche plastique optique).

Voilà, dis moi si c'est mon explication est claire.

Pour les formules et les tableaux, je prefèrerais utiliser ça mais je ne sais pas faire non plus, je vais me renseigner sur les tableaux croisés dynamiques.

Merci encore.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
Modifié par jordane45 le 12/02/2014 à 15:12
Oula.. sacrée usine à Gaz que tu comptes créer...
Y'a pas mal de boulot et aucun code tout fait qui puisse réaliser ce que tu souhaites faire...

Sans trop avoir réfléchi au problème... si je devais m'atteler à ce travail je pense que pour simplifier les choses je commencerai par:
- Créer un onglet qui référence les différents codes de branche
quelque chose sur au moins trois colonnes :

REFERENCES | TYPE DE BRANCHE | secteur d'activité de l'acheteur
P4230 plastique -
P4231 plastique -
P4230 plastique optique optique

En gros.. pour chaque référence tu crées autant de ligne que de possibilités..

Ensuite, dans ton tableau principal tu pourras ajouter une colonne qui, à l'aide d'une macro, permettra de mettre en face de chaque ligne le type de branche auquel le code est rattaché en fonction : De sa référence ET du type d'activité de l'acheteur.

Dans l'exemple que je t'ai mis au dessus, on pourra faire par exemple :
Pour une ligne de ton tableau principal :
Reference = "P4230"
Secteur_Activite = "toto"
=> Type_Branche = "plastique"

et pour une autre ligne :
Reference = "P4230"
Secteur_Activite = "optique"
=> Type_Branche = "plastique optique"
0
Merci Jordan.

oui ça je l'ai fait. Et après tu ferais comment ? :)
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
12 févr. 2014 à 16:08
Pour ensuite ajouter dans ton onglet principal le type pour chaque ligne, tu peux utiliser, comme je te le disais, une formule du genre :
Index / Equiv ( sous sa forme "matricielle").

Exemple : http://support.microsoft.com/kb/59482/fr
NB: remplace "MATCH" par EQUIV
Une deuxième méthode donne les mêmes résultats mais utilise plutôt concaténation. La formule d'exemple suivante peut être préférable de correspondance des données par rapport à plusieurs critères (plus de deux) car elle ne nécessite pas imbriqués instructions Si :

=INDEX($C$2:$C$5,EQUIV(D2&E2,$A$2:$A$5&$B$2:$B$5,0))


vous devez également entrer cette formule comme formule matricielle
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ok je vais regarder ça. Merci encore Jordan je te tiens informé
0
Re-bonjour Jordan,

Comment puis-je faire pour imposer un critère changeant dans une fonction SOMME.SI. Je ne veux pas de critères sur plusieurs colonnes (donc pas utiliser SOMME.SI.ENS) mais je voudrais faire un truc dans l'esprit de: SOMME.SI(plage soumise au contrôle; OU(les deux critères ok); plage à sommer) ?

Bonne journée à toi.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
13 févr. 2014 à 11:42
Bonjour,

Je ne veux pas de critères sur plusieurs colonnes
(donc pas utiliser SOMME.SI.ENS)
SOMME.SI.ENS ne sert pas QUE pour travailler sur plusieurs colonnes... Il sert à faire des SOMMES avec un ensemble de SI
=SOMME.SI.ENS(C1:C8;$B$1:$B$8;">5";$B$1:$B$8;"<10")
0
rafi382 Messages postés 15 Date d'inscription jeudi 13 février 2014 Statut Membre Dernière intervention 28 mai 2015
13 févr. 2014 à 12:06
Ca ne marche pas lorsque j'impose des critères sur la même colonne.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
Modifié par jordane45 le 13/02/2014 à 12:38
fais voir ta formule....
NB: même si ce forum n'est pas là pour ça... (ce n'est pas de la programmation)...
0
rafi382 Messages postés 15 Date d'inscription jeudi 13 février 2014 Statut Membre Dernière intervention 28 mai 2015
13 févr. 2014 à 17:00
C'est bon ça a marché merci encore Jordan
0
rafi382 Messages postés 15 Date d'inscription jeudi 13 février 2014 Statut Membre Dernière intervention 28 mai 2015
14 févr. 2014 à 14:40
=SOMME.SI.ENS('Report year n'!$F$43:$F$3000;'Report year n'!$A43:$A3000;"=$B$6";'Report year n'!$X43:$X3000;"=$B$9")

Voilà la formule. Tu vois une faute ?
0
Rejoignez-nous