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 :
Hello Denis 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
GL
Le 15/06/2014 23:51, Jacquouille a écrit :
Hello Denis Parfois, ce qui est trop logique dépasse l'entendement.... On demande à Excel 1 bordure...alors, il sort les "1 bordure".....-))
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é.
Le 15/06/2014 23:51, Jacquouille a écrit :
Hello Denis
Parfois, ce qui est trop logique dépasse l'entendement....
On demande à Excel 1 bordure...alors, il sort les "1 bordure".....-))
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
Hello Denis Parfois, ce qui est trop logique dépasse l'entendement.... On demande à Excel 1 bordure...alors, il sort les "1 bordure".....-))
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é.
GL
Le 15/06/2014 21:36, MichD a écrit :
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!
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.
Le 15/06/2014 21:36, MichD a écrit :
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!
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...
Avec un peu de travail, tu devrais y arriver. Regarde l'exemple déjà fourni sur l'autre fil sur le même sujet!
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...