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:

C@thy

XLDnaute Barbatruc
Re : Macro sous Word

Bon, j'ai testé, c'est SUPER NIALGÉ, mais je n'arrive pas à faire la même chose pour OEuvres (mais il y a un e dans l'O) et LH (légion d'honneur), pour les mettre en bleu comme l'*, et le *Livre d'or n'est pas colorié en bleu.

Je rebidouille encore, mais on tient le bon bout, sacré nom de nom!!!

Biz

C@thy
 
Dernière édition:

C@thy

XLDnaute Barbatruc
Re : Macro sous Word

Bizarre bizarre, en remplaçant ^013LH par ^013*LH ça marche, vu que ça commence par * il met bien la balise ETOILE et la couleur bleue youpi! Oeuvres idem, mais Livre d'or y'a rien à faire, pas de balise et pas de couleur bleue.

Bon, on va dire que ça marche...
maintenant je dois créer mes 4 fichiers avec chacun : Nom prénom en rouge + le vert, le bleu, le noir et là... j'ai encore besoin de ton aide! (Aïe! Pas taper, Pyrof! je ne suis qu'une faible femme!!!)

Mille mercis à toi, je sens qu'on est tout près du but! Ouf! Quelle galère ce fichier Word n'importe comment! Et dire qu'il y en a qui ne connaissent pas les styles... franchement y'a des baffes qui se perdent Arg! Si je pouvais fouetter le "vous savez quoi" des utilisateurs (ce Mc Cain, il a pas la frite!)

Bibises et un grand merci, tu es super.

C@thy
 

Pyrof

XLDnaute Occasionnel
Re : Macro sous Word

Bonjour,
Je suis prêt a continuer, mais tu as complété la macro, et maintenant ton fichier word est proche du but.
IL faudrait que tu me joignes ton fichier actuel, ta macro et tes besoins pour aller plus loin
 

C@thy

XLDnaute Barbatruc
Re : Macro sous Word

Un grand merci à toi, c'est super sympa. Normalement je t'ai envoyé un message privé avec mon adresse e-mail, mais l'as-tu reçu?
Ttu me réponds et comme ça j'ai ton adresse e-mail et je t'envoie ça.

Bibises
 

Pyrof

XLDnaute Occasionnel
Re : Macro sous Word

Désolé, mais je ne peux donner mon adresse
Quel est le but de passer de word en fichier txt pour l'ouvrir dans excel et le repasser dans word.

Pour passer d'excel à word tu fais un copier coller un par un fichier, normalement le copier coller ne doit pas perdre la typo.

Ne serait-il pas possible directement dans word, après cette macro de ne conserver que ce tu veux (difficile avec les femmes ......)
 

C@thy

XLDnaute Barbatruc
Re : Macro sous Word

On est en train d'écrire le fil le plus lonnnnnnng de l'histoire d'XLD.

bon, je t'explique (j'avais déjà donné des explications dans Machin-2.doc inclus dans le Machin.zip que j'ai posté plus haut)

le but est d'isoler la carrière (qui peut être en plusieurs morceaux) afin de la regrouper, de mettre des tabulations après chaque date et d'obtenir ainsi tous les postes du gugus:)o) grâce aux tabulations on l'ouvre dans excel, ensuite on fait des TCD avec calculs en tous sens, durée moyenne dans la 2ème classe ou autre).
Donc il faut que les bonnes infos soient dans la bonne colonne... (mais ça, on peut faire un traitement macro sous excel après), ensuite, une fois que tous les morceaux de la carrière sont à la suite les uns des autres, on rebascule sous word dans l'ordre voulu, on a toute la carrière regroupée on a un style particulier pour l'état civil (né(e) le à, décédé(e) le à, fils(lle) de untel cordonnier et de unetelle rentière, les bouquins qu'ils ont écrit et tout ça, comme ça, par la suite, on recherche le style particulier et on a toutes les carrières ou tous les bouquins ou autre dans word.

Tu vois l'idée ou j'ai pas été assez précise???

Merciiiiiiiiiiiiiiiiii

VOICI MA MACRO DE DATES

Sub MacroDates()
Selection.WholeStory
With Selection.Find
.Text = "1er"
.Replacement.Text = "1"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' tabulation avant chaque date (l'idéal serait d'en mettre une aussi APRES)
For i = 1 To 31
With Selection.Find
.Text = " " & i & " "
.Replacement.Text = "^t" & i & " "
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

Next i
End Sub

C@thy
 
Dernière édition:

Pyrof

XLDnaute Occasionnel
Re : Macro sous Word

Bonjour,

Voici une ébauche de macro pour baliser les dates

Private Sub machin2()

Selection.HomeKey unit:=wdStory
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "([12])[eèmr]{1;3}"
.Replacement.Text = "\1"
.MatchWildcards = True
.Execute replace:=wdReplaceAll
End With

Selection.HomeKey unit:=wdStory
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = " {2;}"
.Replacement.Text = " "
.MatchWildcards = True
.Execute replace:=wdReplaceAll
End With
balise_date "janvier"
balise_date "f[eé]vrier"
balise_date "mars"
balise_date "avril"
balise_date "mai"
balise_date "juin"

' a compléter

Selection.HomeKey unit:=wdStory
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "<Fdate> au <Ddate>"
.Replacement.Text = " au "
.MatchWildcards = False
.Execute replace:=wdReplaceAll
End With


End Sub

Private Sub balise_date(mois)
Selection.HomeKey unit:=wdStory
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Font.Underline = False
.Text = "([0-9]{1;2} " & mois & " [0-9]{4;4})"
.Replacement.Text = "<Ddate>\1<Fdate>"
.MatchWildcards = True
.Replacement.Font.Underline = True
.Execute replace:=wdReplaceAll
End With

End Sub
 

C@thy

XLDnaute Barbatruc
Re : Macro sous Word

Yep! Nialgé pour les dates, mais je ne dois le faire que dans la carrière,
pour séparer la carrière en colonne, et pas le reste, d'où l'utilité d'avoir un fichier séparé où je ne mets que la carrière, et dans lequel je balise les dates, et je remplace les . et , par des tabulations, et pas dans le reste.

On avance à grands pas.

Un énorme MERCI pour tout ce que tu fais.

Bises

C@thy
 

C@thy

XLDnaute Barbatruc
Re : Macro sous Word

Arf! Je ne sais pas comment tu fais tout ça, j'en suis encore émerveillée :
.Text = "(\<DPAGE\>[!^013]{1;}^013)([!^013]*^013)"
ou encore .Text = "([0-9]{1;2} " & mois & " [0-9]{4;4})"
j'y comprends rien du tout mais ça marche super bien,
c'est dommage car si j'arrivais à comprendre je serais p'têt capable de faire la suite...
par exemple je dois, dans l'état civil mettre une tabulation après fils(fille) de et après et de, mais si j'ai et de dans la carrière (ex. ministère des finances et de l'industrie) je dois laisser tel quel, c'est pourquoi le mieux est de faire des fichiers différents pour l'état civil (filiation), la carrière, les oeuvres et décorations, et tout le reste (4 fichiers) afin de faire le traitement approprié dans chacune de ces parties.

Bises et bonne journée, un grand MERCI ce que tu fais est SUPER!!!

C@thy
 

C@thy

XLDnaute Barbatruc
Re : Macro sous Word

Coucou! C'est remoi,

j'essaie de baliser
fils ou fille de en copiant (mal!!!) ce que tu as fait,

mais ceci :

Sub MacroFiliation()
Selection.HomeKey unit:=wdStory
With Selection.Find
.Text = "^013(Fil[sle] de*^013)"
.Replacement.Text = "^p<Filiation>\1"
.MatchWildcards = True
.Replacement.Font.Color = wdColorDarkYellow
.Execute Replace:=wdReplaceAll
End With
End Sub


ne fonctionne pas pour les filles (heureusement y'en a pas beaucoup dans mon fichier) est-il possible de le faire ou bien faut-il en faire 2, un avec fils de et l'autre avec fille de?

2ème question :
je n'arrive toujours pas à baliser les oeuvres, est-ce à cause de l'e dans l'o???

3ème question, comment baliser depuis le 1er * (balisé <ETOILE>) jusqu'à la fin (gugus suivant) ceci me serait très très utile.

enfin 4ème question, la plus importante au stade où nous en sommes,
comment copier ce qui est balisé : le nom+prénom (rouge) + la carrière(vert) par exemple dans un autre document word?
Je crée 4 nouveaux fichiers,ensuite chacun de ces nouveaux fichiers deviendra une feuille sous Excel,
et avec un RECHERCHEV sur le nom+prénom concaténés j'obtiendrai n'importe quelle info.

Merci à toi, tu as déjà fait beaucoup, mais je n'arrive pas à continuer toute seule:)()

J'aimerais pouvoir te rendre d'une façon ou d'une autre ce que tu fais pour moi.

Bises

C@thy
 

Pyrof

XLDnaute Occasionnel
Re : Macro sous Word

Bonjour,

Pour les filles ........................
tu cherche fil[les], [les] veut dire un seul caractère soit le l ou e ou s
ainsi tu trouves fils fill et file

Essais
fil[ls][e ]{1;}de

[ls] = l ou s donc fils ou fill
[e ] = la lettre e ou espace (il y a un espace entre e et ]
{1;} = caractère précédent répété 1 fois minimum donc e ou espace ou eeeeeeee e

On avance.

Après cette modification, mois je n'ai complété ma macro, donc pour e^tre dans les mêmes conditions, il faudrait que tu joignes ton fichier après avoir passé ta macro, j'aurais ainsi tous les codes
 

C@thy

XLDnaute Barbatruc
Re : Macro sous Word

Yep! On avance on avance, et toujours dans le bon sens et on a encore de l'essence alors on avance.

Tes explications sont limpides, je savais bien que c'était pas ça!!!

par ailleurs dans la carrière, des fois le mot 1er ne se trouve pas en gras italique mais juste en gras, j'ai essayé de remplacer, maic ça marche pô! !

Sub MacroPrems() 'gras italique
Selection.HomeKey unit:=wdStory
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "1er"
.Font.Italic = False
.Font.Bold = True
.Replacement.Text = "1er"
.Font.Italic = False
.Font.Bold = True
.Replacement.Font.Color = wdColorBrightGreen
.Execute Replace:=wdReplaceAll
End With
End Sub

Je ne peux pas joindre le fichier car
1- trop long
2- confidentiel...

MERCI à toi, tu es SUPER

Bises

C@thy
 
Dernière édition:

Pyrof

XLDnaute Occasionnel
Re : Macro sous Word

Bonjour,

.ClearFormatting
.Replacement.ClearFormatting

supprime le formatage de la recherche et du remplacement



.Font.Italic = False
.Font.Bold = True

recherche texte non ital et gras

il manque le remplacement en ital

.Replacement.Font.Italic = true
.Replacement.Font.Bold = True

Je vais, dès que je vais avoir du temps, regarder ton fichier

On l'aura ......
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
315 098
Messages
2 116 189
Membres
112 679
dernier inscrit
Yupanki