Affichage nom transporteur le moins cher

Bonjour,

cela va peut etre vous paraitre simple mais je souhaiterai simplement afficher le nom du transporteur le moins cher dans une grille de prix.

Pour cela dans mon fichier j'ai une grille de prix transporteur par onglet et en feuil5 j'ai le meme modele de grille a remplir avec le nom du transporteur le moins cher.

merci pour vos retours

50essai.xlsx (121.48 Ko)

personne a une idée ?

Bonjour,

Proposition macro, c'est le plus facile dans ton cas (j'ai fait ça pendant une "pause" mais je n'arrivais plus à retrouver ton sujet).

Sub TransPrixMin()
    Dim c As Range, adrc$, f%, pmin%, px
    ReDim tpx(Worksheets.Count - 1)
    For Each c In ActiveSheet.Range("B3:G98")
        adrc = c.Address
        px = 99999: pmin = 0
        For f = 1 To Worksheets.Count - 1
            With Worksheets(f).Range(adrc)
                If .Value <> "" And .Value < px Then
                    px = .Value
                    pmin = f
                End If
            End With
        Next f
        c.Value = px
        c.Offset(, 10).Value = Worksheets(pmin).Name
    Next c
End Sub

Il faut rétablir les 2 lignes manquantes 20A et 20B sur l'avant-dernière feuille transport (je l'ai fait). Et il y a aussi un trransporteur dont le prix est mini sur la Moselle, à 0 ! S'il ne transporte pas gratuitement en Moselle, il faudra effacer les 0.

Cordialement.


Je viens de voir que j'ai oublié de supprimer une ligne dans la macro, celle qui commence par Redim... (J'avais pensé d'abord utiliser un tableau, puis j'ai vu que c'était plus simple sans). Comme elle ne déclenchait pas d'erreur, je l'ai oubliée... mais autant la supprimer.

33dirtyharry-essai.xlsm (141.41 Ko)

merci beaucoup je vais regarder meme si je ne maitrise pas du tout les macros

je pensais que cela pouvait se faire avec des formules

C'est faisable avec formules, mais au cas particulier plus compliqué. On est dans des formules "3D", et comme on a des conditions, plus les noms de feuilles à récupérer, ça passe par une vieille commande macro Excel 4 pour créer une liste nommée des noms de feuille, puis formules matricielles un peu lourdes...

Or ton classeur était parfaitement construit pour une macro vite écrite et n'utilisant que des instructions élémentaires : pour chaque cellule de résultat, on défile les feuilles sur la cellule correspondante et on retient au fur et à mesure le prix mini et le numéro de feuille, et à la fin de chaque tour, on le prix mini qu'il suffit d'affecter, et le numéro de feuille dont on va mettre le nom dans la 2e cellule de résultat à 10 colonnes de la 1re.

Comme tu le vois, dans ce cas avec VBA ça revient à compter avec des bûchettes comme à la maternelle, alors que c'est une autre affaire pour bâtir la formule.

Cordialement.

merci encore

c'est super

Rechercher des sujets similaires à "affichage nom transporteur cher"