Fonction SI( ; ; ) en VBA

Le
GL
Bonjour,

Je n'arrive pas à trouver l'équivalent de la fonction
basique SI parmi les WorksheetFunction de VBA.


Typiquement si j'ai une feuille du style :

<A> <B> <C>
1 VRAI {=SI(B1:B5;A1:A5)} (en validation matricielle)
2 FAUX
3 FAUX
4 VRAI
5 VRAI

J'aimerais utiliser {=mafonction(B1:B5;A1:A5)} au lieu de SI.
Avec :
Public Function mafonction(A as Range, B as Range) ' déclaration

(c'est le pb sur lequel je bute. En réalité, mafonction fait un peu plus
mais doit inclure un "SI(<>;<>)" dans sa définition)

Merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #25837482
Bonjour,

Il ne faut surtout pas expliquer ce que tu désires faire
et à quoi doit servir ta formule, tout est évident
par l'exemple que tu as donné comme formule : {=SI(B1:B5;A1:A5)}

MichD
---------------------------------------------------------------
.
GL
Le #25837532
Le 03/12/2013 13:43, MichD a écrit :
Bonjour,

Il ne faut surtout pas expliquer ce que tu désires faire
et à quoi doit servir ta formule, tout est évident
par l'exemple que tu as donné comme formule : {=SI(B1:B5;A1:A5)}



???

Re-bonjour,

En fait je cherche à faire une fonction
LISTOF(<plage-vecteur>)

qui renvoie les index dans la <plage-vecteur> des valeurs VRAI.

Je peux évidemment faire avec une boucle FOR sur les valeurs de <plage>
Mais j'aurais aimé utiliser une formule matricielle puisqu'il est
possible de le faire avec par exemple :
=PETITE.VALEUR(SI(<plage>;{1.2.3.4.5.6.7});{1.2.3.4.5.6.7})

Bref, Excel et les matrices, c'est carrément limité voire largement
boggué !

Merci quand même (pour info, j'ai fait avec une boucle FOR, pour de
petites plages, ça va quand même question temps de calcul).

Cordialement.
MichD
Le #25837622
Ces 2 syntaxes fonctionnent :

La question est plutôt, si ta formule est bonne,
pour faire ce que tu veux faire?????????

Chacune d'elles retourne la même chose que si tu avais
écrit ces formules dans une cellule...Cela ne signifie pas
que la formule est bonne!

'----------------------------------------
Sub test()
s = [SMALL(IF(A1:A8,{1,2,3,4,5,6,7}),{1,2,3,4,5,6,7})]

Cette présentation te permet d'inclure des variables...
mais elles font la même chose!
x = Evaluate("SMALL(IF(" & Worksheets("Feuil1").Range("A1:A8").Address & _
",{1,2,3,4,5,6,7}),{1,2,3,4,5,6,7})")
End Sub
'----------------------------------------


MichD
---------------------------------------------------------------
Publicité
Poster une réponse
Anonyme