Title: Rechercher remplacer dans entete avec tableau

Bonjour ;

Je rencontre un problème assez bizarre.

Je travaille sur un module permettant de gérer des modèles de courriers sous oOWriter

Jutilise des champs prédéfinis comme %Bloc Lettre% et une fonction rechercher / remplacer en remplaçant le champ prédéfini par le contenu du presse papier.

Je rencontre le problème suivant :

Si je place le champ prédéfini dans lentête simplement cela fonctionne. Par contre si ce champ est positionné dans un tableau situé dans lentête cela ne fonctionne plus !

Pour effectuer le rechercher remplacer jutilise la fonction suivante :



    Function RechercherRemplacerToutPressePapier(ByVal sMots As String, ByVal sRespecterCasse As Boolean, ByVal sMotEntier As Boolean) As Long

        Dim oResultat As Object

        Dim oDispatcherLocal As Object

        Dim oIndex As Integer

        Dim oControleur As Object

        Dim Arguments(0) As Object

        oSel = oDocument.CurrentController.Frame

        Arguments(0) = MakePropertyValue("Hidden", False)

        sMots = ConvertToAllowsString(sMots)

        oDispatcherLocal = CreateUnoService("com.sun.star.frame.DispatchHelper")

        oMonTexte = oDocument.getText()

        oControleur = oDocument.CurrentController

        oJeCherche = oDocument.createSearchDescriptor

        'Definir la balise à rechercher dans le document OpenOffice Word

        oJeCherche.SearchString = sMots

        'Distinguer les majuscules des minuscules dans la recherche

        oJeCherche.SearchCaseSensitive = sRespecterCasse

        'Ne rechercher que des mots

        oJeCherche.SearchWords = sMotEntier

        'Rechercher à reculons

        oJeCherche.SearchBackwards = False

        'Faire une recherche avec la méthode des expressions régulières

        oJeCherche.SearchRegularExpression = True

        'Rechercher des paragraphes d’un style donné par SearchString

        oJeCherche.SearchStyles = False

        'Rechercher un texte similaire au texte cherché

        oJeCherche.SearchSimilarity = False

        oResultat = oDocument.findAll(oJeCherche)

        For oIndex = 1 To oResultat.getCount()

            ' sélectionner la chaine de recherche

            oMonCurseur = oMonTexte.createTextCursorByRange(oResultat.getByIndex(oIndex - 1))

            ' Remplacement par un texte

            ' oMonCurseur.setString("Chaine de remplacement")

            'Remplacement par le contenu du presse papier

            oControleur.select(oMonCurseur)

            oDispatcherLocal.executeDispatch(oSel, ".uno:Paste", "", 0, Arguments)

        Next

        RechercherRemplacerToutPressePapier = oResultat.getCount()

    End Function


Merci pour votre aide

Répondre à