@Fs
Je me suis trompé de macro... c'est celle là la bonne:

Sub traiteFichier()
Dim oDoc as Object, searchDescriptor as Object, resultat as Variant
Dim i as Integer, range as Object, cursor as Object, valChamp as String
   oDoc = thisComponent
   searchDescriptor = oDoc.createSearchDescriptor()
   With searchDescriptor
      .SearchString = "Texte prof"
      .searchStyles = True
   End With
   resultat = oDoc.findAll(searchDescriptor)
   If resultat.hasElements() Then
      For i = 0 To resultat.Count-1
         range = resultat(i)
         cursor = range.Text.createTextCursor()
         cursor.goToRange(range, false)
         cursor.collapsetostart()
         cursor.goRight(len(range.string), true)
         valChamp = String(len(range.string),"_")
         cursor.String = valChamp
      Next i
   EndIf
End Sub

Cordialement.

Le 15 mai 2015 22:08, Cemoi Cemoi <[email protected]> a écrit :

> @Fs
> Texte prof c'est le nom du style
>  dans lequel tous les caractéres seront remplacé par des __
>
> tu ouvres un doc de test tu crais un style Texte prof puis tu l'appliques
> à une partie du texte. Apres ça tu charges et exécutes la macro.
>
> Pour ma première partie du script sensé faire la meme chose que la version
> en shell et bien ça ne marche pas et ça ne retourne aucune erreur... du
> coup je tourne en rond :/
>
>
>
>
> Le 10 mai 2015 15:56, Cemoi Cemoi <[email protected]> a écrit :
>
>> @ Pierre C
>>
>> regarde plus haut la macro que j'ai mise elle fonctionne bien pour ce que
>> tu veux faire.
>>
>> @ Pierre-Yves
>> j'ai commencé à faire ça;
>>
>> post; sub main
>>
>> repBase="/home/cemoi/owncloud/perso/test_macro/"
>> fichier = dir(repBase+"*_eleve*.odt")
>> while fichier<>""
>>    call traiteFichier(repBase+fichier)
>>    fichier = dir()
>> wend
>>
>> end sub
>>
>> Mais je ne comprends pas tout ce que je fais là... :/
>>
>> en fait je tente de faire ce que je fais deja en shell mais en basic...
>> En shell ça donne ça:
>>
>> #! /bin/bash
>>
>> find /home/cemoi/Documents/cible -type f -iname "*cours*.odt" |
>>     while read name
>>     do
>>         new_name=$(echo $name|sed 's/\.odt$/_eleve.odt/')
>>         if [ "$name" -nt "$new_name" ]
>>         then
>>             cp "$name" "$new_name"
>>         fi
>>     done
>>
>>
>> Ca parcours l'arborescense du repertoir cible en y cherchant tous les
>> fichier odt ayant le mot cours (sans prendre en compte la casse) ça y
>> ajoute le prefix _eleve au nom existant de chaque fichier trouvé puis ça
>> copie le fichier si le fichier source fait le même poids si non non.
>>
>> à la suite dans la macro je voudrai ajouter le code
>>
>> Option Explicit
>> Sub RemplacerStyle()
>> Dim oDoc As Object, searchDescriptor As Object
>>    oDoc = ThisComponent
>>    searchDescriptor = oDoc.createReplaceDescriptor
>>    With searchDescriptor
>>       .SearchString = "Texte prof"
>>       .ReplaceString = "Blanc"
>>       .SearchStyles = true
>>    End With
>>    oDoc.replaceAll(searchDescriptor)
>> End Sub
>>
>> pour l'appliquer en recursif sur le repertoir cible sur chaque fichier
>> odt ayant le mot eleve et en fin faire l'export en pdf une fois les styles
>> modifié.
>>
>> L'intéret de tout faire en basic c'est de pouvoir faire un .oxt une fois
>> que tout ça fonctionnera.
>>
>> Merci pour votre aide precieuse!
>>
>> Cordialement, cemoi.
>>
>> Le 10 mai 2015 06:50, pierre-yves samyn <[email protected]>
>> a écrit :
>>
>>> Bonjour
>>>
>>>
>>> Cemoi Cemoi wrote
>>> > je comprends l'idée mais sans ... ou ___ ça va être moyen pour ecrire
>>> > sur les documents.
>>>
>>> Oui... si je t'avais proposé d'utiliser le blanc. Or ma proposition
>>> était de
>>> recourir à un léger gris qui va créer l'équivalent visuel d'une zone de
>>> saisie.
>>>
>>> Je préfère cela à un souligné qui me rappelle trop les anciens documents
>>> administratifs à remplir. Choix subjectif donc...
>>>
>>> Par ailleurs j'ai le sentiment que cela sera plus rapide à l'exécution
>>> que
>>> le
>>> remplacement du texte. Ce n'est qu'un sentiment, je n'ai fait  aucun
>>> essai,
>>> mais, compte tenu du volume de documents à traiter cela peut entrer en
>>> ligne de compte...
>>>
>>>
>>> Cemoi Cemoi wrote
>>> > ...je ne veux que le pdf de modifié et surtout pas le fichier source...
>>> > ... La macro au depart doit parcourir l'arborescense pour trouver tous
>>> les
>>> > ...fichiers *.odt, ajouter le mot eleve au nom de chaque fichier
>>>
>>> Si tu appelles ta macro dans un script, pourquoi ne pas simplement
>>> copier en renommant tes documents dans le script puis manipuler
>>> ces copies dans ta macro ?
>>>
>>> Sinon, en basic tu peux utiliser la fonction GetFileNameWithoutExtension
>>> de la bibliothèque Tools, par exemple :
>>>
>>> dim sNomDoc as string, sNewNomDoc as string
>>>
>>> GlobalScope.BasicLibraries.LoadLibrary("Tools")
>>>
>>> sNomDoc = convertToUrl("c:\Tests\a.odt")
>>> sNewNomDoc = GetFileNameWithoutExtension(sNomDoc)
>>> sNewNomDoc = sNewNomDoc & "Eleve.odt"
>>>
>>> Name sNomDoc As sNewNomDoc
>>>
>>> Cordialement
>>> Pierre-Yves
>>>
>>>
>>>
>>> --
>>> View this message in context:
>>> http://nabble.documentfoundation.org/masquer-un-style-a-l-impression-tp4146314p4148299.html
>>> Sent from the Users mailing list archive at Nabble.com.
>>>
>>> --
>>> Envoyez un mail à [email protected] 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
>>>
>>
>>
>

-- 
Envoyez un mail à [email protected] 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 à