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 dun 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]