Créer une fonction CRITERE

Résolu
Bonjour,

Je voudrais créer une fonction qui réponde à cette syntaxe :
=CRITERE(opérateur;valeur)


L'objectif est entre autres de pouvoir faire varier l'opérateur.

Ça pourrait donner, par exemple :

=NB.SI(A1:A5;CRITERE(B1;C1))

où B1 contient l'opérateur ">" et C1 la valeur "3".

Je précise que je n'y connais rien en VBA.

Merci. :)


A voir également:

5 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Peut être ceci, mais je ne vois toujours pas où tu veux en venir
Public Function test(ech, ope As String, ref) As Boolean
Dim ok As Boolean
ok = False
Select Case ope
Case "=": If ech = ref Then ok = True
Case ">": If ech > ref Then ok = True
Case ">=": If ech = ref Then ok = True
Case "<": If ech < ref Then ok = True
Case "<=": If ech <= ref Then ok = True
End Select
test = ok
End Function

Cdlmnt
1

 
Bonjour tout le monde,

Une réponse m'a été apportée par ailleurs :

Function test(échantillon, opérateur, valeur)
Dim r(), i, v, nc
nc = Application.Caller.Columns.Count
If échantillon.Count = 1 Then
test = Evaluate(Replace(échantillon & opérateur & valeur, ",", "."))
Else
i = -1
For Each v In échantillon
i = i + 1
ReDim Preserve r(i)
r(i) = Evaluate(Replace(v & opérateur & valeur, ",", "."))
Next v
If nc = 1 Then test = Application.Transpose(r) Else test = r
End If
End Function


Merci de m'avoir accordé de votre temps !

Bon dimanche,
1
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
Bonjour,

Bien que je ne voie pas la finalité ... voici la fonction personnelle correspondante :
Function CRITERE(opérateur As String, valeur As String) As String
CRITERE = opérateur & valeur
End Function

Fonction à placer dans un module standard.

A+
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Public Function critere(operation As String, valeur) As String
critere = operation & valeur
End Function

Utilisation dans la feuille
=NB.SI($A$2:$A$11;critere("<";2))

Mais c'est bien compliquer pour pas grand chose

Cdlmnt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
Bonjour,

Tu peux t'intéresser à https://www.excel-pratique.com/ et aller sur le cours de vba
-1