jndourdin
Messages postés6Date d'inscriptionlundi 20 octobre 2008StatutMembreDernière intervention20 octobre 2008
-
20 oct. 2008 à 13:39
jndourdin
Messages postés6Date d'inscriptionlundi 20 octobre 2008StatutMembreDernière intervention20 octobre 2008
-
20 oct. 2008 à 15:35
bonjour,
je recherche une solution de script, macro, applis pour automatiser des mises en page word.
Je m'explique :
En entrée, des documents .doc ou .rtf qui comporte des feuilles de style numérotation, des typos diverses.
Je voudrais une solution, soit dans word, soit en dehors, qui permette d'obtenir toujours la même mise en page, c'esu un peu un cherche et remplace automatique, par exemple, cherche "deux retour ligne" remplace par "un seul", cherche champ "bidule", remplace le par "truc"...
merci pour votre aide
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 20 oct. 2008 à 14:29
Salut,
Merci de lire assez rapidement le[../reglement.aspx règlement de CodeS-SourceS],
IL n'est pas la pour faire joli.... QUEL EST L'INTERET DE POSTER 3 FOIS
LA MEME QUESTION... TU CROIS QUE DE CE FAIT TU AURAS LA RéPONSE PLUS
RAPIDEMENT????
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 20161 20 oct. 2008 à 14:29
bonjour
Voila un an que j'ai un projet comme ça dans mes cartons.
Le projet est vaste j'ai rencontré beaucoup de problème et n'ai pas de projet abouti.
La boite de dialogue "Chercher remplacer" de Word permet d'enregistrer des remplacements et de tout faire ou presque (sauf certaines actions).
Mon projet était de faire quelque chose de générique : j'ai laissé tomber tellement ce que l'on me demander n'était pas délimité au départ et n'avais pas de fin.
Pour t'aider, le squellet d'une action rechercher/remplacer
' si le document est ouvert revenir en haut du document
Selection.HomeKey Unit:=wdStory (FACULTATIF)
' effacer les paramètres de la dernière recherche
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text=""
.Replacement.Text=""
.Forward = True
.Wrap = wdFindContinue
.Font.Italic = True
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
While Selection.Find.Execute
Selection.Collapse
'ici programez l'action à faire en plus
exemple1 :changer le style ou autre attribut de police ou de mise en forme
exemple2: supprimer une partie du texte
exempleN: ... autant d'exmple qu'on veut
jndourdin
Messages postés6Date d'inscriptionlundi 20 octobre 2008StatutMembreDernière intervention20 octobre 2008 20 oct. 2008 à 14:42
toutes mes excuses au modérateur, mais j'ai posté 2 messages différents, par contre, peut être un des deux est en double, mais je suis sur mac, dans une boite de pc, avec pleins de scripts qui ne fonctionnent pas, pas de confirmation non plus, donc toutes mes excuses
Vous n’avez pas trouvé la réponse que vous recherchez ?
jndourdin
Messages postés6Date d'inscriptionlundi 20 octobre 2008StatutMembreDernière intervention20 octobre 2008 20 oct. 2008 à 14:51
Merci pour ce script, je n'y comprend pas grand chose, mais quand, dans ce projet, je dis à mes responsables que des solutions de type script existent, on me regarde avec des billes.
Il faut dire que chez nous, à sofinco, l'informatique est un dinosaure.
Même si cela n'est pas complet, je conserve précieusement, juste pour le faire remonter.
Cordialement, et encore milles excuses au modérateur de la part d'une pauvre petit mac perdu dans un monde pc
Il faut encadrer mon script c'est du VBA pour Word donc déclare une routine RechercherRemplacerFindExec
Sub RechercherReplacerFindExec(quoi, par, action)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text=quoi
.Replacement.Text=par
.Forward = True
.Wrap = wdFindContinue
.Font.Italic = True
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
While Selection.Find.Execute
Selection.Collapse
'ici programez l'action à faire en plus
Select Case action
' ici bon courage
End Select
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdMove
Wend
End Sub
je tiens à dire que j'emploie aussi méthode de traitement par paragraphe
ActiveDocument.Paragraphs est la collection de paragraphe sur laquelle on fait un traitement par paragraphe d'ou l'instruction "For each"
Sub RechercherReplacerParParagraphe(quoi,par,action)
Dim par as Paragraph
For each par in ActiveDocument.Paragraphs
if Instr(1,par.Range.Text,quoi) then
' pour remplacer (à tester) , attention ce traitement supprime les particularités italique , exposant su texte initial
Selection.Range.Text = Replace(oPar.Text,quoi,par)
' encore une autre solution
' debut de ligne jusqu'à rencontré quoi
' ajouter par pour remplacer quoi
' ajouter le restant du paragraphe
Selection.TypeText=Mid(oPar.Text, 1,Instr(1,oPar.Text,quoi)-1) + par + Mid(oPar.Text, Instr(1,oPar.Text,quoi)+1)
end if
Next
End Sub
J'ai même fait des remplacement en utilisant le composants RegExp (expression régulière) pour rechercer des URL, des numéros de téléphones, etc mais c'est pas toujours évident à maîtriser. Car la méthode connait des normes dans plusieurs environnements PHP .Net VBScript et il n'existe pas assez de script réputés sûrs