Comment faire un comparateur de prix ?

Bonjour,

Je souhaiterai faire un comparateur de prix entre différents fournisseurs, je n'arrive pas à trouver les formules exactes .

Je vous présente mon besoin et je vous joins un fichier pour que vous puissez voir exactement ma demande .

Il faut comparer les colonnes C - D - E - F lorsque 2 cellules sont identiques la comparaison peut se faire, le comparateur devra en fonction du prix indiqué dans la colonne L mettre les résultats ( 1 , 2 , 3 x le nombre de comparaisons ) obtenus dans la colonne M .

Les résultats de la colonne M me permettront de faire un tri du plus petit au plus grand .

Il faut que se soit applicable à l'ensemble de la feuille .

Voilà en espérant avoir été assez clair , mais n'hésitez pas à me contacter le cas contraire .

Merci pour votre aide .

Philippe

Bonjour

Tu as oublié le fichier.

Cordialement

Bonjour,

Voici le lien

Bonjour

Mon Excel 2003 ne peut pas lire ton fichier version 2007

Cordialement

Bonjour,

Si je te fais un CSV , tu pourra le récuperer pour ton 2003 ?

Cordialement

Philippe

Bonsoir à tous, bonsoir Amadéus,

Le fichier en 2003,

pas trop d'idées pour le moment

Amicalement

Claude

Bonjour

Merci Claude.

fraggle, tu veux quel résultat en colonne M

Le rang du prix par rapport aux autres prix sur les lignes similaires? le nombre de solutions ou les solutions à la suite (les différents prix)?

Pour le classement des prix pour les lignes similaires, je propose en M2, incrémentée vers le bas

=SOMMEPROD((CONCATENER($C$2:$C$52;$D$2:$D$52;$E$2:$E$52;$F$2:$F$52)=CONCATENER(C2;D2;E2;F2))*($L$2:$L$52<L2))+1

Pour un résultat plus lisible

En nommant les colonnes en champs dynamiques

La Formule

=DECALER(Feuil1!$C$2;;;NBVAL(Feuil1!$C:$C)-1)

est nommée Artist

=DECALER(Feuil1!$D$2;;;NBVAL(Artist))

est nommée Title

=DECALER(Feuil1!$E$2;;;NBVAL(Artist))

est nommée Label

=DECALER(Feuil1!$F$2;;;NBVAL(Artist))

est nommée Barcode

Suite de quoi, la formule en M2 devient

=SOMMEPROD((CONCATENER(Artist;Title;Label;Barcode;)=CONCATENER(C2;D2;E2;F2))*($L$2:$L$52<L2))+1

Cordialement

Amadéus,

Il faudrait mettre dans la colonne M , pour le moins cher = 1 et en suivant 2 , 3 ....etc suivant le nombre de ligne .

Par exemple pour les lignes 2 , 3 , 4 , le résultat est 3, 2 , 1 dans la cellule M , ligne 5 et 6 , le résultat est 2, 1 .

Merci en espérant que se soit possible .

Philippe

re,

Si on a le droit de trier le tableau, c'est plus facile,

Sub Tri()
Dim Lg&, Cpt%, i%, x%
    Application.ScreenUpdating = False
    Lg = Cells.Find("*", , , , xlByRows, xlPrevious).Row
    Range("m2:m" & Lg).ClearContents        'efface résultats
    Range("n2:n" & Lg) = "=c2&d2&e2&f2"     'concatène C:F
    '--- tri ---
    Range("a2:n" & Lg).Sort _
        Key1:=Range("n2"), Order1:=xlAscending, _
        Key2:=Range("L2"), Order2:=xlAscending, _
    Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    '---
    For i = 2 To Lg
            Cpt = 1
            x = i
        If Cells(i, "n") = Cells(i + 1, "n") Then
            Do While Cells(x, "n") = Cells(i + 1, "n")
                Cells(x, "m") = Cpt
                Cpt = Cpt + 1
                x = x + 1
            Loop
                i = i + Cpt - 2
        End If
    Next i
        Columns("n").Clear
End Sub

Amicalement

Claude

Bonsoir

fraggle, si tu avais lu mon message précédent et regardé le fichier joint, tu aurais vu que le résultat t'y est donné.

Cordialement

Bonjour,

Je vais faire des essais dans la journée car j'ai pas mal de fichiers à faire et je te tiens au jus .

Merci beaucoup , pour le travail déjà effectué .

Philippe

Amadéus ,

Voici mes remarques suite à mes différents essais :

1. Pourquoi les lignes 2 et 3 / 4 et 5 ne sont pas comparés ?

2. Il faudrait pouvoir comparer les lignes 19 à 24 même si le barcode est différent, le nom et le titre sont identiques . Par contre il faudrait mettre un chiffre ou autre chose dans la colonne M pour montrer que la ligne à bien été comparer avec les autres , même quand le barcode est différent .

3. Je ne comprends pas pourquoi la ligne 37 n’a pas été comparé .

Pour info, le fichier total est d’environ 100 000 références qui seront comparées toutes les semaines après la réception des fichiers fournisseurs .

Cordialement

Philippe

Bonjour

1. Pourquoi les lignes 2 et 3 / 4 et 5 ne sont pas comparés ?

Sauf erreur, elles sont comparées puisque le prix ligne 2 est marqué 3, celui de la ligne 3 est marqué 2 et celui de la ligne 4 est marqué 1 (Le moins cher)

2. Il faudrait pouvoir comparer les lignes 19 à 24 même si le barcode est différent, le nom et le titre sont identiques . Par contre il faudrait mettre un chiffre ou autre chose dans la colonne M pour montrer que la ligne à bien été comparer avec les autres , même quand le barcode est différent .

Tu as demandé de comparer les lignes dont"les colonnes C - D - E - F" sont identiques et je n'ai pas relevé le "orsque 2 cellules sont identiques la comparaison peut se faire,"

3. Je ne comprends pas pourquoi la ligne 37 n’a pas été comparé .

Parce qu'il manque le point après le K

4. Si tu as 100 000 lignes avec des formules, tu devras passer par VBA parce que le traitement par formule risque d'être démeusurément long.

Cordialement

Amadéus a écrit :

Bonjour

1. Pourquoi les lignes 2 et 3 / 4 et 5 ne sont pas comparés ?

Sauf erreur, elles sont comparées puisque le prix ligne 2 est marqué 3, celui de la ligne 3 est marqué 2 et celui de la ligne 4 est marqué 1 (Le moins cher)

Moi j'ai rien sur mon fichier .

2. Il faudrait pouvoir comparer les lignes 19 à 24 même si le barcode est différent, le nom et le titre sont identiques . Par contre il faudrait mettre un chiffre ou autre chose dans la colonne M pour montrer que la ligne à bien été comparer avec les autres , même quand le barcode est différent .

Tu as demandé de comparer les lignes dont"les colonnes C - D - E - F" sont identiques et je n'ai pas relevé le "orsque 2 cellules sont identiques la comparaison peut se faire,"

Je me suis mal exprimé , SI 2 cellules entre C-D-E-F sont identiques ( C-D - C-E - D-F...etc ) il doit avoir comparaison .

3. Je ne comprends pas pourquoi la ligne 37 n’a pas été comparé .

Parce qu'il manque le point après le K

Il faut que je fasse attention que tous les textes soient identiques pour que cela fonctionne .

4. Si tu as 100 000 lignes avec des formules, tu devras passer par VBA parce que le traitement par formule risque d'être démeusurément long.

Je ne connais rien en VBA , tu as la possibilité de t'y pencher dessus ?

Cordialement

Merci pour ton aide.

Philippe

Bonjour Amadeus,

Aurais tu une solution ?

Cordialement

Philippe

Bonjour

Moi, non, je suis nul en VBA.

D'autres, peut-être...

Cordialement

Bonjour Amadeus,

Merci pour ton aide .

Philippe

Bonjour

A l'analyse de ton fichier, puisque tu dis que la comparaison peut se faire dès que 2 colonnes sont remplies, tu devrais peut être t'en tirer en comparant les 2 colonnes Artit et Label

La formule en M2 serait

=SOMMEPROD((CONCATENER(Artist;Label)=CONCATENER(C2;E2))*($L$2:$L$52<L2))+1

Par ailleurs, sauf erreur de ma part, la Macro de Dubois devrait pouvoir se modifier en remplaçant la ligne de concaténation.

Sur le fichier V2, la nouvelle formule

Sur le fichier V3, l'application du Code de Dubois.

Cordialement

Bonsoir à tous, bonsoir Amadéus,

Personnellement, j'aurai concaténer "D:E" au lieu de "C:E"

mais bon !

Philippe ne dit même pas si on peut trier

Amicalement

Claude

Bonsoir Claude,

Tu veux trier quoi ?

Cordialement

Philippe

Rechercher des sujets similaires à "comment comparateur prix"