Bernard Marcelly a écrit :
Bonjour superfan,
Message du 2005-10-12 18:27:
1° lorsque le mot (minuscule) passe en majuscule les accents
n'apparaissent
pas dans la cellule, alors même qu'ils apparaissent dans la barre de
calcul
et sur l'aperçu avant impression (ils apparaissent aussi lorsque l'on
double
clic dans la cellule). Cela est-il normal, comment faire pour qu'ils
apparaissent
dans la feuille calc ?
J'ai fait un petit essai. Le changement apparaît dans Calc. Sans doute
un problème dans ta macro.
2° cette macro fonctionne uniquement lorsque l'on se positionne
dans une cellule (j'utilise CurrentSelection dans la macro),
j'aimerai faire en sorte que si l'on sélectionne plusieurs cellules
la manip fonctionne aussi. Comment faire ?
J'ai regardé dans le livre de B. Marcelly au sujet des zones mais
j'avoue
que cela me parait un peu obscur.
Oui, c'est complexe. Et encore plus pour balayer toutes les cellules
dans les différents cas de sélection. En gros, il faut créer une
énumération sur l'objet sélection, ce qui permet d'énumérer les zones.
Pour chaque zone qui est une simple cellule, pas de problème. Pour
chaque vraie zone il faut faire un .queryContentCells avec les bons
arguments, et à partir de l'objet obtenu créer une énumération et s'en
servir pour énumérer les cellules de chaque zone. Il y a un exemple
d'énumération (sur un autre sujet) dans l'exemple du bas de la page 194.
Si tu y arrives, ce serait intéressant que tu proposes la macro pour
le site fr.openoffice.fr
Bonne journée
Bernard
N' y aurrait-il pas confusion entre les différents types de zone qui
sont indiqués par exemple p 290 de Programmation OOo et les NamedRanges ?
Pour moi superfan, parle des différents type de zone, personnellement,
je ferrais ainsi :
Sub MaMacro(Selection as Object)
if Selection.supportsService("com.sun.star.sheet.SheetCellRanges") then
for x = 0 to Selection.Count - 1
MaMacro(Selection(x))
next
elseif Selection.supportsService("com.sun.star.table.Cell") then
' Ici ta macro sur une seule cellule
else
for x = 0 to Selection.RangeAddress.EndColumn -
Selection.RangeAddress.StartColumn
for y = 0 to Selection.RangeAddress.EndRow -
Selection.RangeAddress.StartRow
MaMacro(Selection.getCellByPosition(x,y))
end if
End Sub
Si tu peux faire ta macro sur plusieurs cellules en même temps, la
troisième partie est inutile.
Les zones nommées (NamedRanges) qui sont avec plusieurs zones, c'est sûr
que c'est vraiment pas facile d'utilisation quand la méthode
.ReferredCells ne marche pas.
Pascal.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]