Je viens de prendre le temps de faire quelques tests pour constater que mon hypothèse sur le comportement de findAll est fausse.

J'ai essayé avec plusieurs dispositions de cellules, contigües ou non, et en mélangeant de différentes façons les cellule contenant exactement le texte cherché ou un texte plus long que le texte cherché: tout semble bien se passer chez moi, les recherches donnent le même résultat dans les deux cas, je ne reproduis pas votre erreur.

Par contre, je répète que des cellules contigües répondant toutes à la recherche et formant une zone rectangulaire ne comptent que pour 1 pour Count.

Attention! je me suis fait avoir au début parce que je n'avais pas fini la saisie d'une des cellules (oubli de taper Entrée) et donc bien que la cellule semblait contenir le texte cherché elle n'était pas trouvée.


Le 06/01/2011 21:21, Pascal Chantriaux a écrit :
Les textes toto et toto2 sont-ils dans deux
cellules contigües?

Avec findAll je sais que le résultat est une liste
constituée de cellules ou de zones (les cellules
contigües contenant le texte cherché étant
regroupées dans une seule zone).
Autrement dit si 2 cellules contigües contiennent
le texte, elle ne comptent que pour une zone dans
le résultat (il faut ensuite éventuellement tester
si c'est une cellule ou une zone).

Si oui, se pourrait-il que, dans ce cas, il y ait
un comportement différent selon que la première
des cellules contient exactement ou non le texte
cherché, la recherche donnant une seule zone si la
première cellule contient exactement le texte
cherché (toto) et deux zones si la première
cellule contient une partie (tot) du texte cherché.

Si toto et toto2 sont dans deux cellules
contigües, il faudrait regarder si le phénomène se
produit de la même façon en mettant toto et toto2
dans deux cellules non contigües.

Pascal

Le 06/01/2011 17:40, open-office a écrit :
Bonjour,

Je vais essayer d'être claire
Dans un tableau calc, je crée une macro qui
recherche des noms avec le code suivant (merci la
communauté, je l'ai trouvé sur le site)

/Cherche = maZone.createSearchDescriptor
with Cherche
.SearchString = "toto"
.SearchWords = false
end with
trouve = maZone.findAll(Cherche)
if IsNull(trouve) then
msgbox "non trouvé"
exit sub
endif

msgbox "Nombre d'occurrences : " & trouve.Count/

Mon problème est que si dans mon fichier j'ai toto
et toto2 et que je recherche toto il ne me trouve
que le premier, idem si j'ai deux fois toto, alors
que si je cherche tot il me trouve bien les deux.

Y-a-t-il un paramètre à rajouter pour que lorsque
je cherche toto je trouve toutes les occurrences
de "toto" ?

merci




---------------------------------------------------------------------

To unsubscribe, e-mail:
prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail:
prog-h...@fr.openoffice.org




---------------------------------------------------------------------
To unsubscribe, e-mail: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

Répondre à