Excel - Comparaison de deux listes de prix

Résolu/Fermé
9IceMan9 Messages postés 14 Date d'inscription lundi 11 juillet 2011 Statut Membre Dernière intervention 4 octobre 2012 - 11 juil. 2011 à 05:15
9IceMan9 Messages postés 14 Date d'inscription lundi 11 juillet 2011 Statut Membre Dernière intervention 4 octobre 2012 - 30 juil. 2011 à 19:06
Bonjour,

Tout d'abord merci de l'attention portée à ma question (probablement de débutant lol). Voici donc ma situation.

J'ai une liste de prix Excel pour 60 000 produits à quatre colonnes (1 - le # de produit. 2 - la description du produit. 3 - le prix public. 4 - le prix compagnie.). Je reçois chaque semaine, la même liste mais avec les prix actualisés, de nouveaux produits et des produits enlevés. Ces listes sont classées en ordre croissant par numéro de produit donc, le produit #A1 qui était sur la ligne numéro 1 la semaine passée, peut se retrouver sur la ligne numéro 2 cette semaine. J'aimerais pouvoir comparé les prix de semaine en semaine pour voir la fluctuations des prix des produits et ceux qui ont été ajoutés / enlevés. Est-ce possible à partir de ces listes?

Merci
A voir également:

16 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
11 juil. 2011 à 12:52
Bonjour
voir la fluctuations des prix des produits

prix public et/ou prix compagnie?

le format des prix que tu recois chaque sem. est il texte ou nombre (import de données externes pouvant être en texte comme par ex fichiers Txt)?

suivi sur 2 semaines ou tableau récapitulatif sur N semaines?

emic,le plus simple je pense c'est de programmer ca avec un macro
ce sera forcément du VBA et la macro sera loin d'^tre simple

toutefois Microsoft déconseille XL pour des listes >15000 lignes:
http://office.microsoft.com/fr-ch/excel-help/utilisation-d-access-ou-d-excel-pour-gerer-vos-donnees-HA001042918.aspx
1
9IceMan9 Messages postés 14 Date d'inscription lundi 11 juillet 2011 Statut Membre Dernière intervention 4 octobre 2012
11 juil. 2011 à 20:10
Bonjour,

Dans le fond ce que je veux, c'est que le fichier me dise quels prix (compagnie seulement) ont été changés ou ajoutés ou enlevés. Les prix sont écrit en nombre (ex:$129.99). Chaque semaine on reçoit la liste mise à jour.

Merci pour votre aide précieuse!
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
12 juil. 2011 à 08:31
bonjour

Si tu es sur un XL francais le point dans ton $99.98 est du texte
alors vérifie par une fonction ESTTEXTE et tu dis...
Michel
1
9IceMan9 Messages postés 14 Date d'inscription lundi 11 juillet 2011 Statut Membre Dernière intervention 4 octobre 2012
15 juil. 2011 à 02:46
Bonjour!

Voici le premier classeur, plus ancien :

http://www.cijoint.fr/cjlink.php?file=cj201107/cij0by1igW.xls

et le deuxième plus récent :

http://www.cijoint.fr/cjlink.php?file=cj201107/cijaRRXpCS.xls

Alors j'aimerais qu'ils m'identifie les ajouts, et les différence de prix de la colonne D dans un nouveau fichier.

Merci pour votre aide!
1

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

Posez votre question
antipolis a Messages postés 15609 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 12 novembre 2014 2 858
15 juil. 2011 à 22:56
Bonjour.


Et voilà, c'est fait.
Un bon exercice.

Vous pouvez récupérer le tout ici :
http://www.cijoint.fr/cjlink.php?file=cj201107/cijNHOzkzd.zip

Si problèmes ou améliorations à faire, n'hésitez pas.
Je garde le sujet sous le coude.


Cordialement.
1
antipolis a Messages postés 15609 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 12 novembre 2014 2 858
16 juil. 2011 à 07:52
Bonjour.


Nouvelle version après correction d'un petit défaut :

http://www.cijoint.fr/cjlink.php?file=cj201107/cijIGLJLHu.zip


Cordialement.
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 16/07/2011 à 22:26
Bonjour (bonsoir à tous)
ci joint proposition
https://www.cjoint.com/?3GqwxNSqwLV

le classeur de comparaison est dans le sous dossier "évolutions" et crée un rapport de la semaine ( à adapter éventuellement suivant la date de travail)
les fichiers sources sont rebaptisés provisoirement semaine27,semaine28, semaine29, en attendant que tu fournisses les noms exacts

actuellement l'analyse se fait sur mon vieux coucou en 2,1 secondes. Pourrais tu me dire le temps pour 60000 lignes comme tu l'annonces. Si ca traine de trop, on pourra passer par extraction sur fichiers restant fermés

Michel
1
antipolis a Messages postés 15609 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 12 novembre 2014 2 858
17 juil. 2011 à 09:49
Bonjour.


Beau travail.

Mais je me pose une question :
sur mon PC, pour arriver à peu près, au même résultat, à partir des fichiers fournis par "9IceMan9", la durée d'exécution de votre macro est d'environ 1.5 s et de 0.5 s pour ma macro.
Pourquoi cette différence ?

Et mauvaise nouvelle, "9IceMan9" vient d'écrire que les données étaient dans un classeur EXCEL, mais sur deux feuilles.
C'est malheureusement une donnée que nous n'avions pas au départ.

Nous allons devoir réviser nos copies.


Je vous souhaite un bon dimanche.
0
antipolis a Messages postés 15609 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 12 novembre 2014 2 858
12 juil. 2011 à 09:08
Bonjour.

Pouvez-vous nous mettre une de copie des feuilles "semaine n" et "semaine n-1" sur http://www.cijoint.fr/ pour nous permettre de cogiter sur votre sujet ?

Bien entendu, pour des raisons de confidentialité, des données sont à effacer (description du produit par exemple).
Effacer le contenu des cellules, mais pas la colonne.

Comme la taille des fichiers est limitée à 8 Mo sur cijoint.fr, il sera nécessaire de limiter la copie à quelques centaines ou milliers de lignes.

Et comme tout le monde n'est pas équipé de la version EXCEL 2007 et suivantes, pouvez-vous nous faire copie au format .XLS au lieu de .XLSX ?
Ce sera plus pratique.

Avec ces documents à disposition, je pense que vous aurez plus de réponses à votre sujet.

Merci.
0
antipolis a Messages postés 15609 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 12 novembre 2014 2 858
14 juil. 2011 à 08:53
Plus(négation) de nouvelles.

Sujet "Abandonné" ou "Résolu" ?
0
antipolis a Messages postés 15609 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 12 novembre 2014 2 858
16 juil. 2011 à 23:01
Bonjour.


"est-ce que ça calcule sur plusieurs feuilles de calcul ou seulement une a la fois ?"
En micro-informatique, on est dans des processus "mono-taches".
Donc, je dois répondre que l'on calcule sur une seule feuille à la fois.
Mais c'est tellement rapide, qu'on a l'impression que tout se fait en même temps.
Mais, après tout, c'est le résultat qui compte

La macro travaille sur les feuilles "modifié", "supprimé", "ajouté", et les fichiers "Ancien.xls" et "Nouveau.xls".

A un moment donné, toutes les feuilles sont ouvertes, et la macro se "balade" un peu partout, mais pas n'importe où (pour lire, écrire, déplacer, effacer, copier, coller, modifier, calculer, ...).

Les grandes étapes du programme :
- on nettoie les zones d'écriture des données
- on ouvre les fichiers à comparer
- on recherche les prix modifiés
- on recherche les articles supprimés
- on recherche les articles ajoutés
- on revient sur la page d'accueil
- on referme les fichiers de données

Les résultats sont dans les feuilles "modifié", "supprimé", "ajouté".

Vous pouvez récupérer la macro "Sub Listes_Comparer()" ici :
http://www.cijoint.fr/cjlink.php?file=cj201107/cijUuW2JPi.doc

Si il y a des réglages à faire, n'hésitez pas à me faire signe.


Cordialement.
0
antipolis a Messages postés 15609 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 12 novembre 2014 2 858
18 juil. 2011 à 17:48
"est-ce que ça calcule sur plusieurs feuilles de calcul ou seulement une a la fois ?"
Maintenant j'ai compris pourquoi "9IceMan9" a posé cette question.

"donc il faut traiter 90918 lignes"
Donc sur plus d'une feuille par classeur.
Et cela peut évoluer vers haut (et vers le bas aussi).
Ça, ce n'est pas facile à traiter.
Faut tout repenser.

La retraite c'est super.
Mais là, dur,dur.
J'avais abandonné le VBA depuis pas mal de temps, mais ça revient bien.
Et puis cela permet de faire travailler les neurones.

Cordialement.
0
antipolis a Messages postés 15609 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 12 novembre 2014 2 858
Modifié par antipolis a le 28/07/2011 à 06:50
Bonjour, me revoilà.

Après quelques heures de dur labeur, voici ce que j'ai pu faire afin de pouvoir traiter des classeurs ("Ancien.xls" et "Nouveau.xls") multi-feuilles :
http://www.cijoint.fr/cjlink.php?file=cj201107/cijCKu8Olu.zip

Ce qui a pris beaucoup de temps, c'est de tester la bête, et de corriger les erreurs (de logique et de syntaxe).

Actuellement, dans les classeurs "Ancien.xls" et "Nouveau.xls", il y a 10 000 références. Dans ces deux classeurs, les références sont éclatées sur deux feuilles (Feuil1 et Feuil2). Et on peut aller au-delà.

Ce qui m'inquiète, c'est la durée d'exécution :
- pour 1 000 lignes ==> 00 min, 07 sec;
- pour 10 000 lignes => 07 min, 23 sec;
- pour 20 000 lignes => 27 min, 45 sec;
- pour 90 918 lignes => je n'ai même pas essayé, mais on devrait arriver aux environs de 7 heures.

Si quelqu'un a des idées pour booster l'application, il sera le bienvenu.

Bon amusement.
0
9IceMan9 Messages postés 14 Date d'inscription lundi 11 juillet 2011 Statut Membre Dernière intervention 4 octobre 2012
30 juil. 2011 à 18:04
Bonjour!

Merci pour le travail fait! Juste un petit problème! Quand je lance la macro, erreur!

Erreur d'exécution '9':

L'indice n'appartient pas à la sélection.

Quand je lance le débogueur, il m'amène a la ligne : Worksheets("Feuil" & Var_CompteurFeuillesAncien).Select

merci encore!
0
antipolis a Messages postés 15609 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 12 novembre 2014 2 858
30 juil. 2011 à 19:04
Bonjour.

La macro cherche, dans les classeurs Ancien.xls et Nouveau.xls, des feuilles nommées Feuil1, Feuil2, Feuil... et elle n'a rien trouvé.
0
9IceMan9 Messages postés 14 Date d'inscription lundi 11 juillet 2011 Statut Membre Dernière intervention 4 octobre 2012
30 juil. 2011 à 19:06
Ah d'accord les feuilles ont des noms tels que price list, price list continue, etc.
0
9IceMan9 Messages postés 14 Date d'inscription lundi 11 juillet 2011 Statut Membre Dernière intervention 4 octobre 2012
16 juil. 2011 à 21:57
Wow l'exemple est concluant :)

La seule chose que je voulais savoir, est-ce que ça calcule sur plusieurs feuilles de calcul ou seulement une a la fois?

Merci encore pour ton bon travail! :)
-1
9IceMan9 Messages postés 14 Date d'inscription lundi 11 juillet 2011 Statut Membre Dernière intervention 4 octobre 2012
16 juil. 2011 à 22:37
Le fichier original s'appelle : PRICEL~ORIGINALE.xls

Il contient 65536 sur la première feuille de calcul, 25 382 sur la deuxième.

Merci encore!
-1
9IceMan9 Messages postés 14 Date d'inscription lundi 11 juillet 2011 Statut Membre Dernière intervention 4 octobre 2012
16 juil. 2011 à 22:40
Et le nom du fichier qui s'update toutes les semaines : PRICEL~1.xls
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 17/07/2011 à 11:57
ok, merci

donc il faut traiter 90918 lignes ?
le fichier pricel~1.xls remplace toujours l'ancien pricel~1 ou s'appelle t'il pricel~2
quel est le poids de ce fichier?
excuses moi mais ces précisions me sont indispensables car ce n'est pas du tout tes demandes initiales (1 feuille 60000 lignes, ancien.xls, nouveau.xls)

mets sans faute en PJ ce pricel~1;
d'avance merci car il y a un gros boulot précis à faire et toute imprécision et/ou oubli dans tes explications sera rédhibitoire
0
9IceMan9 Messages postés 14 Date d'inscription lundi 11 juillet 2011 Statut Membre Dernière intervention 4 octobre 2012
23 juil. 2011 à 23:14
C'est exactement ce que je voulais dire antipolis a! :)

Merci!
-1
Oui, mais le plus simple je pense c'est de programmer ca avec un macro, parce que juste avec les formules c'est pas forcément évident sinon si tu veux juste une tendance, il est possible d'utiliser les mises en forme automatique, tu peux comparer d'une semaine sur l'autre les articles mais ca sera assez compliqué

La macro que je te conseil :
tu mets les deux listes dans le même classeur
tu utilises une double boucle for : pour la colonne #article ligne i, comparere à colonne #article ligne j, faire varier i que si il y a égalité entre les deux éléments et genre colorier en vert si moins cher en rouge si plus cher

bon courage
-4