Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro sous Word

C@thy

XLDnaute Barbatruc
Bonjour,

je dispose d'une population de 1500 personnes environ, une personne par page.

je cherche à écrire une macro sous Word permettant de faire ceci :
sur chaque page je veux transformer chaque marque de paragraphe par une tabulation, sauf la dernière de la page (sinon le 2ème élément se trouve collé au 1er!)

ensuite (plus dur!) je veux rajouter une tabulation avant et après ce qui est écrit en Tahoma gras Italique.

Le but étant ensuite de le transformer en .txt et de l'ouvrir en colonnes sous Excel. Je joins un exemple de fichier.

Mille mercis à celles et ceux qui pourraient m'aider.

Biz

C@thy
 

Pièces jointes

  • Machin.zip
    4.3 KB · Affichages: 216
  • Machin.zip
    4.3 KB · Affichages: 206
  • Machin.zip
    4.3 KB · Affichages: 205
Dernière édition:

homepyrof53

XLDnaute Occasionnel
Re : Macro sous Word

Bonjour,

Voici une première proposition

Sub essai()
Selection.HomeKey unit:=wdStory

Code:
With Selection.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = "[0-9\-\,]{1;}"
    .Replacement.Text = ""
    .MatchWildcards = True
    .Execute
End With
While Selection.Find.Found
    txt = Selection()
    pos = InStr(txt, ",")
    txt1 = Left(txt, pos - 1)
    txt2 = Left(Mid(txt, pos + 1) & "000", 3)
    Selection = txt1 & " " & txt2
    Selection.MoveRight
    Selection.Find.Execute
Wend
End Sub


Pour info homepyrof c'est pyrof à la maison (pyrof au travail, enfin jusqu'a la fin du mois)
 

homepyrof53

XLDnaute Occasionnel
Re : Macro sous Word

J'ai vu une petite annomalie dans mon programme

voici la correction :
Code:
Sub essai()
Selection.HomeKey unit:=wdStory
Application.ScreenUpdating = False
With Selection.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = "[0-9\-]{1;}\,[0-9]{1;}"
    .Replacement.Text = ""
    .MatchWildcards = True
    .Execute
End With
While Selection.Find.Found
    txt = Selection()
    pos = InStr(txt, ",")
    txt1 = Left(txt, pos - 1)
    txt2 = Left(Mid(txt, pos + 1) & "000", 3)
    Selection = txt1 & " " & txt2
    Selection.MoveRight
    Selection.Find.Execute
Wend
End Sub

Je ne suis pas malade, mais après 30 ans dont 25 à écrire des macros word, je suis en cours de licenciement.

A+
 

C@thy

XLDnaute Barbatruc
Re : Macro sous Word

Coucou,

je viens de tester,
effectivement la 1ère version ne marchait pas bien ex. :"123,45", "-2,14" il enlevait la 2ème virgule (le séparateur de champs),
mais avec la 2ème version c'est super nickelchrome!

Bravo l'artiste!

J'espère que tu trouveras du boulot, tu es dans quel coin? (53 = Mayenne?)

Un énorme MERCI et bonne soirée

Bisous bisous

C@thy
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…