Evaluate sans Cellule intermediaire

M

Mytå

Guest
Bonsoir amis(ies) adeptent du Forum

Un bout de macro tirer de John Walkenbach un peu modifier

Sub Tester()

Dim F1 As String, F2 As String, Rep As Boolean
F1 = "=NB.SI(B1:B5,B1)>0"
F2 = Application.ConvertFormula(F1, xlA1, xlR1C1, , Range("A1"))
F1 = Application.ConvertFormula(F2, xlR1C1, xlA1, , Range("A1"))
Range("A1").FormulaLocal = F1
Rep = Evaluate(Range("A1").Value)

End Sub

Comment Forcer le REP = vrai sans cellule intermedaire
pour utiliser une Function()

Si ici A2=1
et
B1=1
B2=2
B3=3
B4=4
B5=5


Merci Mytå
 
Z

Zon

Guest
Salut,

Il y avait longtemps qu'on ne s'était croisé Myta. Si j'ai bien compris je verrais ta fonction plutôt comme ceci:

Function MytaNBSI(Pl1 As Range, Pl2 As Range) As Boolean
If Application.CountIf(Pl1, Pl2) > 0 Then MytaNBSI = True
End Function


Au fait pourquoi convertir 2 fois ta formule ? Je doute que "=NB.SI(B1:B5,B1)>0" fonctionne.


A+++
 
M

Mytå

Guest
Re Zon

le principe vient d'ici

http://j-walk.com/ss/excel/odd/odd07.htm

la mise en forme conditionnelle pour actualiser une donnée

le F1="bla...bla"" peut etre different

donc c'est F1 que je dois Evaluate

Mytå

Si pas d'autre moyen je vais me servir d'une Cellule intermediaire
 

Discussions similaires

Statistiques des forums

Discussions
312 316
Messages
2 087 179
Membres
103 491
dernier inscrit
bilg1