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]

Répondre à