Rechercher un minimum entre plusieurs cellules spécifiques

Fermé
Mathilde - 24 oct. 2016 à 18:44
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 25 oct. 2016 à 22:00
Bonjour,

J'ai un tableau de 500 lignes de quotation x 8 fournisseurs (en colonnes), j'aimerais trouver une formule qui m'identifie rapidement ligne par ligne quel est le minimum par type de tarif car chaque fournisseur a chiffré différemment selon la logistique.
Donc la réf A - un site de livraison - 8 prix par fournisseur

L'idée est de créer une boucle VBA qui cherche le min pour la ligne A1 parmi les prix DDP des fournisseurs (AB1; AX1; BZ1;...) pas la plage de cellule car elle comprend différents prix qui ne sont pas comparables. A cela s'ajoute la condition que certains fournisseurs n'ont pas tout coté donc certains prix sont à 0, je veux min différent de 0.
Une fois le prix minimum sorti, avec une fonction recherche identifier le nom du fournisseur

Est ce quelqu'un aurait déjà réalisé un bout de code VBA dans ce sens?

D'avance merci!

Mathilde
A voir également:

4 réponses

Raymond PENTIER Messages postés 58797 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 3 janvier 2025 17 263
25 oct. 2016 à 05:51
Je te souhaite beaucoup de chance : tu en auras besoin !

Nous devrions nous débrouiller avec ces contraintes
" car chaque fournisseur a chiffré différemment selon la logistique "
" car elle comprend différents prix qui ne sont pas comparables "
" certains fournisseurs n'ont pas tout coté "
... et tout ça sans même voir le fichier ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
25 oct. 2016 à 09:19
bonjour

<code>Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
et faire un" clic droit-coller le raccourci" dans votre message
Dans l’attente

0
Mathilde_boud Messages postés 5 Date d'inscription mardi 25 octobre 2016 Statut Membre Dernière intervention 25 octobre 2016
25 oct. 2016 à 10:01
Bonjour merci pour votre réponse,

https://www.transfernow.net/files/?utm_source=413sd1s44u4d&utm_medium=&utm_content=en -- mon partage n'est pas accessible

Et voila,un peu d'explication vu que les valeurs ont été enlevé, la seule valeur unique est la colonne A pour chaque ligne, en suite de BE a EU ont a les offres fournisseurs (je conviens que la présence des cellules fusionnes n'est pas pratique).L'idée est de comparer les prix similiraires : BI, BU, CG etc,

donc j'avais pensé a une recherche V avec une MIN imbriqué qui prend en compte uniquement les valeurs supérieurs à 0.. mais je me suis dit qu'un code VBA serait peut etre plus fiable ...

Merci pour votre aide,
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310 > Mathilde_boud Messages postés 5 Date d'inscription mardi 25 octobre 2016 Statut Membre Dernière intervention 25 octobre 2016
25 oct. 2016 à 11:24
télétchargement sur transfertnow refusé par la sécurité Microsoft

essaie avec cjoint
0
Mathilde_boud Messages postés 5 Date d'inscription mardi 25 octobre 2016 Statut Membre Dernière intervention 25 octobre 2016
25 oct. 2016 à 11:29
http://www.cjoint.com/c/FJzjCRmGvpQ
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
25 oct. 2016 à 11:49
merci

1/C'est bien QUE les colonnes BI,BU,CG.... qui sont à comparer ?

2/Tu veux la valeur mini ou le nom du fournisseur du prix mini ?

3/ Toujours 8 fournisseurs ou nombre variable ?

0
Mathilde_boud Messages postés 5 Date d'inscription mardi 25 octobre 2016 Statut Membre Dernière intervention 25 octobre 2016
25 oct. 2016 à 11:54
En fait c'est les colonnes prix qui ont les mêmes noms donc les prix FCA et les prix DDP
L'idée est d'avoir la valeur min et le nom du fournisseur associé (mais comme j'ai mis le nom des fournisseurs en cellule fusionnée je suis pas sure que soit facilement fesable)
Toujours 8 fournisseurs sauf que certains non pas tout coté donc il y a parfois des valeurs vides ou égal à 0
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310 > Mathilde_boud Messages postés 5 Date d'inscription mardi 25 octobre 2016 Statut Membre Dernière intervention 25 octobre 2016
25 oct. 2016 à 12:03
dans les prix DDP il y a 4 intitulé par fournisseur !!!

sans précisions SERIEUSES de ta part, je laisse tomber
0
Mathilde_boud Messages postés 5 Date d'inscription mardi 25 octobre 2016 Statut Membre Dernière intervention 25 octobre 2016 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
25 oct. 2016 à 12:05
L'idée de comparer chaque colonne similaire..
En priorité c'est la comparaison entre les prix : 2016 National Price DDP for 1 to 10 complete pallet Currency/unit
0
Mathilde_boud Messages postés 5 Date d'inscription mardi 25 octobre 2016 Statut Membre Dernière intervention 25 octobre 2016
25 oct. 2016 à 12:00
Merci beaucoup pour votre aide
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 712
25 oct. 2016 à 22:00
Bonjour,

En fonction de ce que j'ai compris avec ton classeur vide (quelques montants auraient été bienvenus !) et avec tes explications, je te propose cette fonction personnalisée :
' cette fonction recherche le minimum non nul d'un type de tarif choisi
' tpe = cellule indiquant le libellé du tarif concerné de la ligne
Public Function prix_mini(tpe As Range) ' BI$2 par exemple
Dim cel As Range, col As Long, lig As Long, mni As Currency, nom As String
    Application.Volatile
    lig = Application.Caller.Row: mni = 0
    For Each cel In ActiveSheet.UsedRange.Rows(tpe.Row).Cells
        If cel = tpe Then
            If Cells(lig, cel.Column).Value <> 0 _
                And (Cells(lig, cel.Column).Value < mni Or mni = 0) Then
                    mni = Cells(lig, cel.Column).Value: col = cel.Column
                    While Cells(1, col).Value = ""
                        col = col - 1: nom = Cells(1, col).Value
                    Wend
            End If
        End If
    Next cel
    prix_mini = IIf(mni, nom & " | " & mni, "Absent")
End Function

Tu la positionnes en bout de ligne (ou ailleurs si tu veux) avec
=prix_mini(BI$2)
par exemple et elle te fournit le nom et le prix minimum de la ligne pour ce type de prix ("FCA" en l'occurrence). Si tu veux un autre type de tarif il te suffit de mettre BL$2 ou autre, sur une autre colonne éventuellement.
La fonction est à coller dans un module de ton classeur ou éventuellement dans le module de ton classeur PERSO.
0