Bonjour,
Je souhaite trouver le min d'un tableau avec condition.
La fonction :
VB:
=MIN(SI($F$1:$F$2<>"X";$E$1:$E$2))
30
20
X
Ici je souhaite afficher 30 cependant la fonction "SI" à l'air de ne pas fonctionner avec les plages de données et prendre uniquement la première valeur et me renvoie 20.
Pourquoi? Quel serait la solution?
Cette fonction me renvoie bien 30 lorsque je suis sur une version supérieur mais pas excel 2013.
Vous auriez fait comme je vous ai dit et regardé la formule qui en ressortait vous auriez vu déjà que pour excel
les formules de .FormulaArray sont en anglais. "SI" interdit.
Une autre façon de faire, copier la formule qui est apparue dans la fenêtre exécution, remplacer les numéros de lignes à cacluler par un signe (@ ci-dessous) et utiliser Replace après avoir doublé les guillemets à doubler:
Bonjour,
Merci et ça fonctionne bien quand je le fais cependant j'écris la formule via VBA avec .FormulaLocal.
Comment préciser que je souhaite la formule en matricielle?
Cordialement
Bonjour @Roblochon ,
Le .FormulaArray ne fonctionne pas, peut être à cause de la version d'excel...
Ca met une erreur et le deboggage me pointe la fonction.
Ce n'est sûrement pas à cause de la version excel. .formulaArray existe depuis la création des objets range (vers 1997 si mes souvenirs sont bons)
Et j'ai testé avant de vous donner !!!!
Votre formule est certainement mal rédigée. C'est tout.
1 - Créez votre formule, à la main dans votre cellule
2 - Après vérification des résultats, maintenez la cellule sélectionnée
3 - Dans la fenêtre d'exécution de l'éditeur VBA (CTRL+G pour ouvrir la fenêtre exécution si ce n'est pas déjà fait) tapez en première ligne de la fenêtre la ligne ci-dessous (point d'interrogation inclus) :
Merci pour ton aide et l'information !
J'ai pu testé mais je te joins l'erreur, qui vient de VBA directement :
Erreur d'execution '1004':
Impossible de definir la propriété FormulaArray de la classe Range.
Mon bout de code (je l'ai bien vérifié) :
Vous auriez fait comme je vous ai dit et regardé la formule qui en ressortait vous auriez vu déjà que pour excel
les formules de .FormulaArray sont en anglais. "SI" interdit.
Une autre façon de faire, copier la formule qui est apparue dans la fenêtre exécution, remplacer les numéros de lignes à cacluler par un signe (@ ci-dessous) et utiliser Replace après avoir doublé les guillemets à doubler:
Le problème venait bien du SI, pensant que la fonction était identique au IF.
Et aussi puisque j'essayais d'écrire la formule dans une case fusionné.
Merci pour le tips du @!
Bonne continuation