Bonjour,
J'ai écrit une macro qui me permet dans Writer de mettre en majuscule la
lettre précédent le curseur ; ça me sert pour mettre en majuscule le ç
et les voyelles accentuées, quel que soit le style.
Cette macro marche bien, sauf si je l'emploie par inadvertance avec un
caractère qui n'a pas de majuscule (les " ' - _ = ^$ * etc.). Ces
caractères sont laissés inchangés (ce qui est correct) mais la remise en
mode CaseMap NULL ne se fait pas : les caractères suivants sont tous mis
en majuscules.
Quelqu'un a-t-il une idée de ce qui se passe ?
Je vais devoir, avant de changer le CaseMap, tester que le caractère
sélectionné a bien une majuscule ; mais j'aimerais juste comprendre
pourquoi ...
Merci d'avance de votre aide.
J'en profite pour souhaiter un Joyeux Noël à toute la liste !
Cordialement,
Louis
----------------
Voici ma macro :
Sub UpperCase()
' mise en majuscule (sans autre changement de style) du caractère à
la gauche du curseur visible)
' les caractères qui seront tapés ensuite seront dans le style courant
Dim oMonTexte As Object, oMonDoc As Object
Dim oMonCurseur As Object, oCurseurVisible As Object
oMonDoc = thisComponent
oMonTexte = oMonDoc.Text
oCurseurVisible = oMonDoc.CurrentController.ViewCursor
' le curseur de travail prend la position du curseur visible
oMonCurseur = oMonTexte.createTextCursorByRange(oCurseurVisible)
' On recule d'un caractère ; le True signifie qu'on étend la sélection
oMonCurseur.goLeft(1, True)
' on met la sélection en majuscules
oMonCurseur.CharCaseMap = com.sun.star.style.CaseMap.UPPERCASE
' on retourne à la fin du mot (sans étendre la sélection)
oMonCurseur.gotoEndOfWord(False)
' et on enlève tout formatage local
oMonCurseur.CharCaseMap = com.sun.star.style.CaseMap.NONE ' c'est
ici que ça coince semble-t-il
End Sub
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]