Bonjour,

Pourquoi ne pas utiliser le recherche et remplace.

L'exemple ci-dessous a été fait sous OO 3.2.1 mais cela doit fonctionner sous libreoffice ( afin je le souhaite)

Option Explicit

Sub RemplacerCaractereParNombreAleatoire()
Dim monDocument As Object
Dim Cherche As Object, trouv As Variant
Dim x As Long
monDocument = ThisComponent
Cherche = monDocument.createSearchDescriptor
with Cherche
 .SearchString = "µ"
 .SearchWords = false
end with
trouv = monDocument.findAll(Cherche)
print "Nombre d'occurrences : " & trouv.Count
for x = 0 to trouv.Count -1
 trouv(x).string = Int((8*Rnd)+1)
next
End Sub

Cordialement

Claude
-------- Message original --------
Sujet : [fr-users] macro dans writer
De : Olivier Jaccomard <jaccom...@free.fr>
Pour : users@fr.libreoffice.org
Date : 15/06/2011 23:52
Bonjour,

cherchant à convertir un système fait sous Word, je voudrais faire une macro qui remplace tous les caractères µ d'un document par un nombre aléatoire entre 1 et 8.

J'ai essayé ça, mais sans résultat (mon curseur ne se déplace pas) :

Pouvez-vous m'aider ?
Cordialement,
O.Jaccomard

Sub Macro1
Randomize 2^14-1
Dim monDocument As Object, monTexte As Object
Dim monCurseur As Object
Dim curseurVisible As Object

monDocument = ThisComponent
monTexte=monDocument.Text
monCurseur=monTexte.createTextCursor
curseurVisible=monDocument.CurrentController.getViewCursor
monDocument.CurrentController.Select(monCurseur)
monCurseur.gotoStart(False)
curseurVisible.gotoStart(false)
For i=1 To monDocument.CharacterCount
    If (curseurVisible.String="µ") Then
        curseurVisible.String=Int((8*Rnd)+1)
    End If
    monCurseur.goRight(1,false)
    curseurVisible.goRight(1,false)
Next i
End Sub





--
Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés

Répondre à