OVH Cloud OVH Cloud

Fonction Find et Excel 97

1 réponse
Avatar
catherine
Bonjour,

j'ai un problème avec Excel 97 avec une fonction "Find" placée à l'intérieur
d'une Fonction personnalisée. Le programme ne renvoie pas d'erreur mais ne
trouve pas la valeur. Le même code fonctionne en version 2002 !

Soit une zone nommée plage_a_calculer ( V1,V2,V3,V4,V5) et une zone nommée
liste_valeurs ( V2,V4,V5) .
La fonction "=SommeSelonListe(plage_a_calculer , liste_valeurs) " placée
dans une feuille de calcul renvoie 0 alors que la même fontion lancée à
partir de VBA (fontion appelSomme) renvoie la bonne valeur.

Merci d'avance pour votre aide, Catherine

Ci-dessous, les fonctions concernées.

Function SommeSelonListe(plage As Range, liste As Range) As Double

Application.Volatile True
Dim c As Range

For Each c In plage

If (Not liste.Find(c.Value) Is Nothing) Then SommeSelonListe
= SommeSelonListe + 1
Next
End Function


Function AppelSomme()
AppelSomme = SommeSelonListe(Range("plage_a_calculer"),
Range("liste_valeurs"))
MsgBox AppelSomme
End Function

1 réponse

Avatar
j
c'est normal find ne fonctionne pas dans une fonction personnalisée
je ne sais pas pour 2002
--

http://jacxl.free.fr/



"catherine" a écrit dans le message de news:
400fe3af$0$24119$
Bonjour,

j'ai un problème avec Excel 97 avec une fonction "Find" placée à
l'intérieur

d'une Fonction personnalisée. Le programme ne renvoie pas d'erreur mais ne
trouve pas la valeur. Le même code fonctionne en version 2002 !

Soit une zone nommée plage_a_calculer ( V1,V2,V3,V4,V5) et une zone nommée
liste_valeurs ( V2,V4,V5) .
La fonction "=SommeSelonListe(plage_a_calculer , liste_valeurs) " placée
dans une feuille de calcul renvoie 0 alors que la même fontion lancée à
partir de VBA (fontion appelSomme) renvoie la bonne valeur.

Merci d'avance pour votre aide, Catherine

Ci-dessous, les fonctions concernées.

Function SommeSelonListe(plage As Range, liste As Range) As Double

Application.Volatile True
Dim c As Range

For Each c In plage

If (Not liste.Find(c.Value) Is Nothing) Then
SommeSelonListe

= SommeSelonListe + 1
Next
End Function


Function AppelSomme()
AppelSomme = SommeSelonListe(Range("plage_a_calculer"),
Range("liste_valeurs"))
MsgBox AppelSomme
End Function