Minimum sans la valeur 0 avec colonnes dissociées

Signaler
Messages postés
14
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
1 juillet 2008
-
Messages postés
14
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
1 juillet 2008
-
Bonjour,

Je vous présente mon problème :

-Je voudrais afficher les minimums d'une serie de colonnes en excluant les valeurs 0.En cherchant sur internet, j'ai trouvé la fonction suivante :

=Min(Si(A1:A10<>0; A1:A10)) .
 
Le problème est que mes données ne sont pas à la suite les unes des autres ... C'est à dire que au lieu de "A1:A10" je voudrais mettre "A1, A3,A5..." . J'ai essayé mais ça ne marche pas.

Mon tableau se présente sous la forme suivante:


<colgroup>
<col style=\"WIDTH: 60pt\" span=\"11\" width=\"80\" />
</colgroup>

----

,
client a,
client b,
client c,

,

,

,

,

----

PRODUITS,
Prix FCA,
Prix DDP,
Prix FCA,
Prix DDP,
Prix FCA,
Prix DDP,
Min FCA,
Max FCA,
Min DDP,
Max DDP,

----

Machin,
100,
200,
300,
150,
0,
0,
 ,
 ,
 ,
 ,

----

Bidule,
0,
0,
50,
450,
500,
250,
 ,
 ,
 ,
 ,

----

Truc,
400,
150,
0,
0,
600,
300,
 ,
 ,
 ,
 




Merci pour votre aide,

Nat

14 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
thème topic : déplacé de VB6 vers VBA
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
salut,

sépare tes cellules par un point-virgule

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
14
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
1 juillet 2008

J'ai déjà essayé mais la formule ne marche pas.
J'ai fait :

=Min(Si(A1;A3;A5 <>0;A1;A3;A5))

Nat
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Faut mettre tes groupes de cellules entres parenthèses

=Min(Si((A1;A3;A5)<>0;(A1;A3;A5)))

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
14
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
1 juillet 2008

J'avais déjà essayé et je viens de réessayer et ça ne marche pas...
Pourtant c logique com formule. Je comprends vraiment pas....

Nat
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
juste pour faire une fonction perso, ce serait quoi (a peu près) ta valeur MAXIMUM ?

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Bon, voilà un exemple, place ce code, dans un Module VB (Alt F11, puis Insertion / Module)

Option Explicit

Public Function MyMin(ParamArray MyRange() As Variant) As Integer
    Dim oRange As Variant, MinValue As Long
    
MinValue = 10000
' si tu penses que tu peux avoir des valeurs > à 10 000,
augmente ce nombre

For Each oRange In MyRange
    If oRange.Value < MinValue And oRange.Value <> 0 Then
        MinValue = oRange.Value
    End If
Next oRange
MyMin = MinValue
End Function

'Exemple
Utilisation, dans ta cellule :  =MyMin(A2;A4;A6;A8;A10)
~
<small>Mortalino ~ [code.aspx?ID=39466 Colorisation
automatique]</small>

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
14
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
1 juillet 2008

je ne sais pas encore ma valeur max , le tableau n'est pas encore rempli et il y a 900 ligne sur 40 colonnes de prix à mettre dedans ....


Donc là en fait si je copie-colle ta réponse, ça va marcher où il faut que je fasse autre chose?

Nat
Messages postés
14
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
1 juillet 2008

OUHAAAA CA MARCHE !  (dsl pour le mail précédent, j'avais pas fait attention aux petites anotations dans ton code)

Merci beaucoup.

Nat
Messages postés
14
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
1 juillet 2008

Re,

En fait y'a un autre problème maintenant...

J'ai mis le code dans ma spreadsheet mais le soucis c'est que kan il n'y a rien de rempli, le minimum se met automatiquement à 10 000.


As tu une idée de comment on pourrait résoudre ça? (pour qu'il se mette à 0)
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
salut

MyMin = Iif(MinValue <> 10000, MinValue, 0)

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
Messages postés
14
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
1 juillet 2008

Salut,

J'ai de nouveau un problème. J'ai changé le 10000 en 100000 dans le code mais ça ne fonctionne pas.
=>>> Là où toutes les valeurs minimales depassent 10000, ça me marque "#Valeur" (alors que les valeurs peuvent normalement aller jusqu'à 100000 du coup!).

Nat
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
Public Function 
MyMin(
ParamArray 
MyRange()
As Variant
)
As Long
Messages postés
14
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
1 juillet 2008

C'est bon, ça marche! Merci beaucoup...

Nat