Merci à laurent Godard et François Gatto pour leur aide voici donc une fonction qui permet d'atteindre un signet, puis de modifier le curseur et de créer un nouveau signet à l'emplacement du curseur tout ceci se passant dans un cadre.
' procédure Sub_Creer_Signet_Texte ' ================================ ' description : ' Créer un signet texte à l'intérieur d'un cadre ' Le signet sera utlisé par la suite pour modifier le texte qui le suit 'paramètres : ' le nom du signet ' le nombre de caractères qu'il doit sélectionner Sub Sub_Creer_Signet_Texte(strNomSignet As String, intNBCaract As integer) Dim Bookmark As Object Dim Cursor As Object Dim NomBookmark as String Dim Doc as object Dim unSignet as object Dim monCadre On Error GoTo Erreurs GlobalScope.BasicLibraries.LoadLibrary("Tools") Doc = ThisComponent unSignet = Doc.Bookmarks.getByName(strNomSignet) monCadre=unSignet.anchor.getText Cursor=monCadre.createTextCursorByrange(unSignet.Anchor.start) Cursor.goRight(intNBCaract, true) Bookmark = Doc.createInstance("com.sun.star.text.Bookmark") NomBookmark = PREFIXE_SIGNETS_TEXTE NomBookmark = NomBookmark & "10_" NomBookmark = NomBookmark & strNomSignet Bookmark.Name = NomBookmark monCadre.insertTextContent(Cursor, Bookmark, True) Exit Sub Erreurs: erreur_num=err() erreur_txt=error(erreur_num) erreur_ligne = Erl() MsgBox("erreur n° " + erreur_num + " à la ligne " + erreur_ligne + chr(13) + erreur_txt, 1 + 16, "Sub_Creer_Signet_Texte") End Sub -----Message d'origine----- De : Francois Gatto [mailto:[EMAIL PROTECTED] Envoyé : lundi 12 juin 2006 23:05 À : prog@fr.openoffice.org Objet : Re: [prog] Curseur et création de repère de texte Bonjour Laurence, BOTTIN Laurence - DGMT/SG/AG2 a écrit : > Re > > En fait si je fais un creatcursor il n'y a pas de plantage, le byrange fait > planté. Je n'avais pas précisé que le signet est dans un cadre > Cachotière ;) > Merci > Laurence Le code que j'avais proposé initialement ne tenait pas compte en effet de ces éléments (cadre, tableau) J'ai donc modifié en conséquence ma procédure qui devrait te permettre de placer un repère de texte : - dans le texte - dans un cadre - dans un tableau. Option Explicit Sub InsertEverywhereBookmarkToViewCursor Dim oDoc As Object, oCurCtrl As Object Dim oCursor As Object, oViewCursor As Object Dim oVCT As Object Dim oBookmark As Object, oBookmarks As Object Dim sMsg As String oDoc = ThisComponent oCurCtrl = oDoc.CurrentController oBookmark = oDoc.createInstance( "com.sun.star.text.Bookmark" ) oBookmark.Name = "MonBookmark7" 'test si le bookmark a placer existe deja oBookmarks = oDoc.getBookmarks() If Not oBookmarks.hasByName( oBookmark.Name ) Then oViewCursor = oCurCtrl.getViewCursor() oVCT = oViewCursor.Text oCursor = oVCT.createTextCursorByRange( oViewCursor ) oCursor.String = "*repère ici*" oVCT.insertTextContent( oCursor, oBookmark, True ) Else sMsg = "Le bookmark " & oBookmark.Name & " existe déjà" MsgBox ( sMsg, 32, "Repère de texte" ) End If End Sub Espérant que cela convienne. -- Francois Gatto --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]