Comment faire un comparateur de prix ?

re,

J'ai l'impression que tu te mélange un peu les crayons dans les fichiers !

Tu as 2 solutions

1) - celle de Amadéus, par formule

celle-ci ne touche pas au tableau,

mais risque la lourdeur vu le nombre de lignes à traiter.

2) - la mienne en VBA

pas de formule, mais nécessite un tri du tableau, soit en détail:

  • on ajoute une colonne temporaire avec D & E concaténés
  • on trie le tableau complet avec cette colonne

à toi de voir

Claude

Claude,

Je vais partir avec ta version ( sorry Amadeus ) car moins risqué par la lourdeur . Par contre je viens de regarder ton fichier, dans la colonne M il y a pas mal d'erreur de résultat .

En attendant ton nouveau fichier .

Cordialement

Philippe

re,

Donc ici, on concatène les colonnes "D" et "E" en colonne "N"

J'ai rajouté un chrono, tu nous diras le temps de traitement des 100000 lignes

tu devras enregistrer le fichier sous 2007 acceptant les macros

Vois si toujours erreurs de résultats et où ?

édit du 11/11 19h35 => fichier supprimé car faux, je mets une nouvelle version

Amicalement

Claude

Bonsoir

sorry Amadeus

Mais il n'y a pas de quoi. C'est bien la solution que je te conseillais, non?

Au passage, bonjour claude

Cordialement

Bonsoir Philippe, à tous,

Mon fichier précédent n'était pas bon, je m'en suis aperçu en recopiant plusieurs fois

le tableau pour augmenter le nombre de lignes.

Evidemment, on retrouvait pour la même occurrence, plusieurs fois le même prix et le nombre

en colonne "M" (résultat) s'incrémentait quand même.

Ceci est réglé sur cette nouvelle version.

J'ai testé sur 51000 lignes, mais le temps de traitement est très long (11 minutes)

ce qui m'amène à envisager d'autres possibilités

----- Question sur le fichier réel (100 000 lignes) -----

Combien peut-il y avoir au maximum d'occurrences identiques (Title et Label concaténés)

donne moi une réponse approximative, une fourchette.

Amicalement

Claude

Bonsoir Claude,

Je suis entrain de mettre tous au format du coup , je n'ai pas vérifié ton avant dernière version .

Pour ta question , je pense max 20 lignes pour commencer .

Cordialement

Philippe

re,

Avant d'aller + loin, vérifie déjà si les résultats de le version3 sont bons avec les 52 lignes

édit:

Bonsoir Amadéus,

Je pensais faire un panaché "Formule/VBA",

Pourrais-tu revoir une formule en supposant que le tableau est trié par la colonne "N" (Title et Label concaténés) et

les prix triés croissants, tels que sur mon fichier.

çà devrait déjà simplifier la formule, non ?

Amicalement

Claude

Bonjour Philippe, à tous,

Finalement, j'ai trouvé cette formule

en M2

=SI(N2<>N1;1;SI(ET(N1=N2;L1=L2);M1;M1+1))

----- Résumé -----

Donc la macro concatène "D:E" en "N", trie le tableau et écrit la formule.

testée sur 51000 lignes, le temps de traitement est de 2 secondes

Sub FormuleRang() 'testée sur 51000 lignes => 2 secondes
Dim Lg&, T
    T = Time
    Application.ScreenUpdating = False
    Lg = Cells.Find("*", , , , xlByRows, xlPrevious).Row
    Range("n2:n" & Lg) = "=d2&e2"           'concatène D:E
    '--- tri ---
    Range("a2:n" & Lg).Sort _
        Key1:=Range("n2"), Order1:=xlAscending, _
        Key2:=Range("L2"), Order2:=xlAscending, _
    Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    '--- formule ---
        Range("m2:m" & Lg) = _
        "=IF(n2<>n1,1,IF(AND(n1=n2,L1=L2),m1,m1+1))"
    '--- en dur ---
    Range("m2:m" & Lg) = Range("m2:m" & Lg).Value: Columns("n").Clear
    Application.ScreenUpdating = True
    MsgBox ("temps macro = " & Format(Time - T, "hh:mm:ss"))
End Sub

Pour voir les formules, mettre une apostrophe devant cette ligne

    '--- en dur ---
    Range("m2:m" & Lg) = Range("m2:m" & Lg).Value: Columns("n").Clear

J'ai laissé la macro "Tri" et résultats en colonne "O" pour comparatif.

édit: les noms définis ne servent plus, tu peux les supprimer

Bonne journée

Claude

Bonjour Claude ,

Je travaille pour mettre le fichier au même format , texte, police...etc . Vu le nombre de ligne je pense en avoir pour la semaine .

Je te tiens au jus dès que j'ai fais les essais .

Merci pour ta patience .

Philippe

Bonsoir Claude,

Est ce que tu crois que c'est possible de faire le comparateur uniquement sur la colonne I , celà me permettra de faire déjà un tri sur les 100000 lignes des produits sans doublons ?

Il faut juste mettre 0 dans la colonne O , pour les lignes sans doublons .

Ensuite, je pourrais refaire une comparaison entre la colonne D et la colonne E avec ce que j'aurais déjà trouvé .

Si c'était moins lourd , je t'enverrai bien le fichier pour que tu puisses voir le travail que j'ai à faire .

Merci pour ton aide .

Philippe

Bonsoir,

Tu veux supprimer les doublons de Prix (colonne "L") de chaque occurrence D et E concaténés ?

Réponds déjà sur mon dernier fichier !

les résultats sont-ils bons ?

qu'est-ce qui te gène ?

Claude

Claude,

Ce que tu as fait est bon . Mais pour que je puisse l'utiliser , il faut que je mettes l'ensemble du fichier au même format , police, gras...etc .

Il faut que les colonnes B, C,D, E soit identiques et ensuite je pourrais faire la comparaison . Je reçois les différents fichiers de mes fournisseurs mais les colonnes B, C,D,E sont différentes exemple : MYLÈNE FARMER , M FARMER mais le barcode colonne F sera le même .

La seule colonne qui est correcte au départ c'est la colonne F .

C'est pour cela que je souhaiterai faire déjà une comparaison avec la colonne F, cela "élimine" les produits sans doublons , je mets ensuite les colonnes B,C,D,E au même format, police, nom....etc .

Voilà, comment faire pour t'envoyer un fichier avec quelques lignes en vrac pour que tu puisses voir ?

Cdlt

Philippe

re,

oui, fais-voir les données telles que tu les reçois

utilise ce lien http://www.cjoint.com

Claude

Claude,

Voici le lien

pour te donner une idée du travail que j'ai à faire avant de tout mettre correctement avant de faire la comparaison .

Le plus simple pour commencer c'est de faire avec le barcode . Quand dis tu ? Je dois m'absenter je te répondrai demain .

Cdlt

Philippe

re,

c'est un fichier tel que tu le reçois ?

pour te donner une idée du travail que j'ai à faire avant de tout mettre correctement avant de faire la comparaison .

à mon avis, il faut partir de çà direct, c'est la macro qui fera le travail !

qu'est-ce que tu veux préparer ?

C'est toi qui as ajouter la colonne "Résultat" ?

le fichier s'arrête bien à la colonne "R" ?

Je ne vois pas vraiment de problème, il suffira d'adapter la macro avec les bonnes colonnes.

Je répète, j'ai besoin du fichier tel que tu le reçois, sans rien ajouter ou modifier,

après, on verra + clair

Claude

Bonjour Claude,

Je te prépare l'ensemble des fichiers que je reçois pour la fin de la journée . Ensuite on avisera .

Cdlt

Philippe

Bonjour Claude,

Est ce que tu peux travailler à partir du fichier d'hier ? Le reste est vraiment trop lourd à envoyer .

Cdlt

Philippe

Bonjour Philippe, forum,

Pour nos prochains échanges, envoie en message privé ton adresse e.mail

vu le poids des fichiers, çà sera + pratique.

Sinon sur le fichier d'hier, j'ai commencé à regarder,

1) - je vois plusieurs Fournisseurs, çà veut dire que tu avais déjà regrouper, non ?

2) - combien de fournisseurs au total ? , ici j'en compte 15

c'est pourquoi, je voulais voir un fichier tel que tu les reçois.

si tu veux qu'on avance, réponds à mes questions

J'ai fait un essai qui semble pas mal, comme ceci:

- si Barcode existant, on compare uniquement le Barcode,

sinon, on compare Title et Label concaténés

à suivre

Claude

Bonsoir à tous,

Bien reçu ton MP, mais je préfère qu'on reste sur le forum

C’est impeccable , la seule remarque c’est qu’il faudrait mettre 0 pour les lignes qui ne sont pas comparées .

Car en faisant un tri de la colonne 0 , je n’arrive pas à différencier ce qui on un doublon ou pas .

Bon, prépare un fichier avec sa structure définitive (colonnes)

Je pense qu'avec 500 ou 1000 lignes, çà devrait passer sur le forum (en zippant)

Pour mettre un 0 (zéro ou autre) à la place du 1, la formule actuelle ne le permet pas,

il faudra peut-être une autre colonne pour différencier les doublons.

On verra

PS: toujours pas vu un fichier tel que tu le reçois !

Amicalement

Claude

Claude,

Je viens de t'envoyer 3 fichiers en MP , pas de problème pour une autre colonne .

Je te prépare un fichier en vrac avec toute possibilité .

Cdlt

Philippe

Rechercher des sujets similaires à "comment comparateur prix"