Louis Vidonne a écrit :
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 ?
les caractères qui n'ont pas de majuscule ne sont pas des lettres et ne font donc pas partie d'un mot donc en changeant la ligne suivante chez moi ça marche (si j'ai bien compris la 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)
commenter :
   oMonCurseur.gotoEndOfWord(False)
remplacer par :
          oMonCurseur.goRight(1,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

joyeux noël

Hgrac

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à