Je précise que le remplacer est en fait un coller ...; en effet je souhaite
pouvoir remplacer le texte recherché par le contenu du presse papier (texte
mis en forme, image ...)

Merci d'avance ...
-----Message d'origine-----
De : Cezame Concept [mailto:[EMAIL PROTECTED] 
Envoyé : jeudi 27 avril 2006 15:42
À : prog@fr.openoffice.org
Objet : RE: Re: [prog] Rechercher remplacer dans entete

Après de nombreux tests j'ai remarqué les choses suivantes ...

J'ai créé un document oWriter avec un entête contenant le mot "essai"

Dans le corps le mot "essai" 

Ensuite j'ai créé un tableau contenant le mot "essai"

Cette fonction devrait permettre de remplacer "essai" partout dans le
document oWriter entête et tableaux compris

J'ai modifié ma fonction comme suit : 

    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

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

        sMots = ConvertToAllowsString(sMots)

        oSel = oDocument.CurrentController.frame
        oDispatcherLocal =
CreateUnoService("com.sun.star.frame.DispatchHelper")
        oMonTexte = oDocument.getText()
        oControleur = oDocument.CurrentController

        oJeCherche = oDocument.createSearchDescriptor
        With oJeCherche
            'Definir la balise à rechercher dans le document OpenOffice Word
            .SearchString = sMots
            'Distinguer les majuscules des minuscules dans la recherche
            .SearchCaseSensitive = sRespecterCasse
            'Ne rechercher que des mots
            .SearchWords = sMotEntier
            'Rechercher à reculons
            .SearchBackwards = False
            'Faire une recherche avec la méthode des expressions régulières
            .SearchRegularExpression = True
            'Rechercher des paragraphes d’un style donné par SearchString
            .SearchStyles = False
            'Rechercher un texte similaire au texte cherché
            .SearchSimilarity = False
        End With

        oResultat = oDocument.findAll(oJeCherche)
        For oIndex = 1 To oResultat.getCount()
            ' sélectionner la chaine de recherche
            oMonCurseur =
oMonTexte.createTextCursorByRange(oResultat.getByIndex(oIndex - 1))
            oControleur.select(oMonCurseur)

            ' Remplacement par un texte
            ' oMonCurseur.setString("Chaine de remplacement")

            'Remplacement par le contenu du presse papier
            oDispatcherLocal.executeDispatch(oSel, ".uno:Paste", "", 0,
Arguments)
        Next

        RechercherRemplacerToutPressePapier = oResultat.getCount()

    End Function


Avec cette fonction j'ai un plantage a chaque changement de type(entête
corps ou tableau) 

Si j'ai le mot dans l'entête ca plante au premier trouvé dans le corps

Si je supprime le mot recherché dans l'entête ca plante quand je passe a
celui contenu dans le tableau ...

Merci de votre aide pour corriger cette fonction ...



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

----------------------------------------------------------------------------
-----------
Wanadoo vous informe que cet  e-mail a ete controle par l'anti-virus mail. 
Aucun virus connu a ce jour par nos services n'a ete detecte.






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

Répondre à