@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