Autre bug sur les recherches de cellules
Le
GL

Bonjour,
Si on recherche les cellules (avec la boîte de dialogue)
qui ont un bord gauche continu, excel ne trouve pas les
cellules qui ont un bord gauche continu et aussi une
autre bordure :
Recherche sur un cadre :
|x |x
|y |x
|y |x
|x |x
Seules les deux cellules "y" sont trouvées no comment.
Si on recherche les cellules (avec la boîte de dialogue)
qui ont un bord gauche continu, excel ne trouve pas les
cellules qui ont un bord gauche continu et aussi une
autre bordure :
Recherche sur un cadre :
|x |x
|y |x
|y |x
|x |x
Seules les deux cellules "y" sont trouvées no comment.
Avec un peu de travail, tu devrais y arriver. Regarde l'exemple déjà fourni sur l'autre fil sur le même sujet!
Parfois, ce qui est trop logique dépasse l'entendement....
On demande à Excel 1 bordure...alors, il sort les "1 bordure".....-))
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
lnkskt$cm0$
Bonjour,
Avec un peu de travail, tu devrais y arriver. Regarde l'exemple déjà fourni
sur l'autre fil sur le même sujet!
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Non non ! On demande à Excel 1 bordure et il sort les *6* bordures
(celles que je n'ai pas spécifiées sont comparées à xlLineStyleNone).
Autrement dit, j'ai recherché 1 bordure en xlContinuous, et pas 1
bordure en xlContinuous et une autre en xlNone.
Application.FindFormat permet de voir que :
Application.FindFormat.Borders(xlEdgeRight).LineStyle vaut Null
Les propriétés booléennes sont souvent passées en Variant de sorte
qu'elle prennent en fait les valeurs True/False ou Null (et au passage
on perd Intellisense, ce qui pour les booléens n'est pas bien génant,
mais nettement plus pour les énumérations pour lesquelles on pourrait
avoir une valeur "magique" xlNull = -2^31 par exemple, les énumérations
étant en fait des Long en VBA: seul Intellisense en a cure).
Par conséquent, si .LineStyle = Null dans FindFormat, il ne vaut pas
xlLineStyleNone = xlNone = -4142L <> Null
Il s'agit effectivement d'un bug, comme indiqué.
D'après le site de microsoft, il faut faire un
For Each cel in <Plage> .. tester les bordures
Effectivement, cela semble la seule possibilité (la finalité est de
sauvegarder les propriétés des bordures, pour Undo/Redo). Ceci étant,
comme la bordure droite de C4 est la bordure gauche de D4, il y a une
optimisation possible (on n'est pas toujours obligé de scanner toutes
les cellules). Evidemment ça nécessite de définir des procédés de
collecte des propriétés : quand Excel a bientôt 30 ans (d'après
Wikipedia) ça fout un peu les boules...
Bonne journée.