OVH Cloud OVH Cloud

Identifier une feuille de calcul

3 réponses
Avatar
jpgui
Bonjour,
J'ai plusieurs feuilles de calculs qui contiennent des prix de
fournisseurs pour des articles. Les feuilles sont construites sur le
même modèle. Comment connaître le fournisseur le mieux disant ? Je
pense faire par "consolidation" mini, j'aurai la valeur la plus faible
mais comment savoir automatiquement à quel fournisseur elle correspond
? Est-ce possible par une mise en forme conditionnelle ?

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

3 réponses

Avatar
FxM
Bonjour,
J'ai plusieurs feuilles de calculs qui contiennent des prix de
fournisseurs pour des articles. Les feuilles sont construites sur le
même modèle. Comment connaître le fournisseur le mieux disant ? Je pense
faire par "consolidation" mini, j'aurai la valeur la plus faible mais
comment savoir automatiquement à quel fournisseur elle correspond ?
Est-ce possible par une mise en forme conditionnelle ?



Bonjour,

A défaut de plus de détails, voici les suppositions faites :
J'ai plusieurs feuilles de calculs qui contiennent des prix de
fournisseurs pour des articles
- Les feuilles sont dans le même classeur, et chacune porte le nom du

fournisseur.

Les feuilles sont construites sur le même modèle.
Heureusement !


Comment connaître le fournisseur le mieux disant ? Je pense
faire par "consolidation" mini, j'aurai la valeur la plus faible mais
comment savoir automatiquement à quel fournisseur elle correspond ?
Je ne m'étendrai pas sur le fait que le MIEUX disant n'est pas forcément

le MOINS disant. La fonction considère le plus faible chiffre (beurk)

Est-ce possible par une mise en forme conditionnelle ?
Autant le dire tout de suite : NON.



Insertion | module, y copier ce qui suit (entre les '=========)
'===== Debut de code fonction ==== 'quimini(inp) retourne la plus faible valeur contenu dans les cellules
'inp de chacune des feuilles autres que la feuille appelante
Public Function quimini(inp)
Application.Volatile True
With Application.Caller
'nom de la feuille appelante
sauf = .Worksheet.Name
'récupération de la formule utilisée
zz = .FormulaArray
'découpage pour trouver la cellule
ouv = InStr(1, zz, "(")
fer = InStr(ouv, zz, ")")
rg = Mid(zz, ouv + 1, fer - ouv - 1)
End With
'créer un tableau
Dim tablo(): ReDim tablo(0, 1)
tablo(0, 0) = 9E+99
'parcourir chacune des feuilles
For Each sht In Worksheets
shn = sht.Name
'oublier celle qui appelle
If shn <> sauf Then
'si la ceulle cherchée n'est pas vide
If IsEmpty(sht.Range(rg)) Then
Else
'si le contenu est inférieur au connu
If sht.Range(rg).Value < tablo(0, 0) Then
'valeur
tablo(0, 0) = sht.Range(rg).Value
'nom de feuille
tablo(0, 1) = shn
End If
End If
End If
Next sht
'retourner le résultat
quimini = tablo
'transposer selon la forme de la séclection
If Application.Caller.Rows.Count > 1 Then _
quimini = Application.Transpose(quimini)
End Function
'===== Fin de code fonction ====
Usage :
Ajouter une feuille dans le classeur en plus des feuilles de données.
La nommer comme tu veux.

Sélectionner DEUX cellules contigües, entrer la formule =quimini(C4) et
valider en matriciel (ctrl-maj-enter). La première cellule contient la
valeur minimale des feuilles (feuille autre que la feuille appelante et
cellules non vides, ici la cellule cherchée est C4), la seconde cellule
indique le nom de la feuille où se situe la valeur mini.

Ceci ne fonctionnera pas sur :
- des classeurs séparés,
- des feuilles de structure différentes,
- des cellules contenant du texte,
- en cas de validation normale,
- ...

@+
FxM

Avatar
jpgui
FxM a exprimé avec précision :
Bonjour,
J'ai plusieurs feuilles de calculs qui contiennent des prix de fournisseurs
pour des articles. Les feuilles sont construites sur le même modèle.
Comment connaître le fournisseur le mieux disant ? Je pense faire par
"consolidation" mini, j'aurai la valeur la plus faible mais comment savoir
automatiquement à quel fournisseur elle correspond ? Est-ce possible par
une mise en forme conditionnelle ?



Bonjour,

A défaut de plus de détails, voici les suppositions faites :
J'ai plusieurs feuilles de calculs qui contiennent des prix de
fournisseurs pour des articles
- Les feuilles sont dans le même classeur, et chacune porte le nom du

fournisseur.

Les feuilles sont construites sur le même modèle.
Heureusement !


Comment connaître le fournisseur le mieux disant ? Je pense
faire par "consolidation" mini, j'aurai la valeur la plus faible mais
comment savoir automatiquement à quel fournisseur elle correspond ?
Je ne m'étendrai pas sur le fait que le MIEUX disant n'est pas forcément le

MOINS disant. La fonction considère le plus faible chiffre (beurk)

Est-ce possible par une mise en forme conditionnelle ?
Autant le dire tout de suite : NON.



Insertion | module, y copier ce qui suit (entre les '=========)
'===== Debut de code fonction ==== > 'quimini(inp) retourne la plus faible valeur contenu dans les cellules
'inp de chacune des feuilles autres que la feuille appelante
Public Function quimini(inp)
Application.Volatile True
With Application.Caller
'nom de la feuille appelante
sauf = .Worksheet.Name
'récupération de la formule utilisée
zz = .FormulaArray
'découpage pour trouver la cellule
ouv = InStr(1, zz, "(")
fer = InStr(ouv, zz, ")")
rg = Mid(zz, ouv + 1, fer - ouv - 1)
End With
'créer un tableau
Dim tablo(): ReDim tablo(0, 1)
tablo(0, 0) = 9E+99
'parcourir chacune des feuilles
For Each sht In Worksheets
shn = sht.Name
'oublier celle qui appelle
If shn <> sauf Then
'si la ceulle cherchée n'est pas vide
If IsEmpty(sht.Range(rg)) Then
Else
'si le contenu est inférieur au connu
If sht.Range(rg).Value < tablo(0, 0) Then
'valeur
tablo(0, 0) = sht.Range(rg).Value
'nom de feuille
tablo(0, 1) = shn
End If
End If
End If
Next sht
'retourner le résultat
quimini = tablo
'transposer selon la forme de la séclection
If Application.Caller.Rows.Count > 1 Then _
quimini = Application.Transpose(quimini)
End Function
'===== Fin de code fonction ==== >
Usage :
Ajouter une feuille dans le classeur en plus des feuilles de données.
La nommer comme tu veux.

Sélectionner DEUX cellules contigües, entrer la formule =quimini(C4) et
valider en matriciel (ctrl-maj-enter). La première cellule contient la valeur
minimale des feuilles (feuille autre que la feuille appelante et cellules non
vides, ici la cellule cherchée est C4), la seconde cellule indique le nom de
la feuille où se situe la valeur mini.

Ceci ne fonctionnera pas sur :
- des classeurs séparés,
- des feuilles de structure différentes,
- des cellules contenant du texte,
- en cas de validation normale,
- ...

@+
FxM


Merci beaucoup. Cà marche (Je suppose que cela ne te surprend pas.
Effectivement la prochaine fois je dirai moins disant (Je t'ai trouvé
un peu "médisant" ;=)))
Merci encore

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com


Avatar
Clément Marcotte
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



Tu pourrais pas dire à ton Mesnews d'enlever son $%?&*()(*!"/$%?&*()
de spam automatique déguisé en signature.