Macro de copie sous word

  • Initiateur de la discussion Initiateur de la discussion C@thy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C@thy

XLDnaute Barbatruc
Bonjour,

j'ai beaucoup progressé dans une précédente discussion, grâce à PYROF qui m'a énormément aidée, mais PYROF ne répond plus et j'ai vraiment besoin de votre aide.

Ce que je veux faire, n'est, je crois, pas trop compliqué :

je veux copier depuis la balise <NOM> jusqu'à µ
j'ai réussi à le faire 1 fois, mais j'ai 642 fois l'occurence de <NOM> jusqu'à µ, et c'est la répétition que je n'arrive pas à faire.

Voici l'état de mes recherches :

Sub Copie()
ThisDocument.Activate
Selection.HomeKey Unit:=wdStory 'début du docoment
With Selection.Find
.MatchWildcards = True
.Execute FindText:="(<NOM>*µ)", Format:=True, Forward:=True
End With
While Selection.Find.Found
Selection.MoveEnd Unit:=wdCharacter, Count:=-1
Selection.Copy
Documents("EtatCivil.doc").Activate
Selection.PasteAndFormat (wdPasteDefault)
ThisDocument.Activate
Selection.Next(Unit:=wdParagraph, Count:=1).Select
'paragraphe suivant
Selection.Find.Execute FindText:="(<NOM>*µ)"
Forward:=True
Wend
End Sub


ça copie juste le 1er, pas les 641 autres, je sens que je ne suis pas très loin, mais j'y perds mon latin (damned!)

Si quelqu'un avait la gentillesse de pouvoir m'aider... j'en ai vraiment besoin

Mille mercis

C@thy
 
Re : Macro de copie sous word

Salut C@thy,

Difficile sans ton fichier Word, mais pourquoi ne pas utiliser les même options (Selection.Find) au début et dans ta boucle

Code:
Sub Copie()
ThisDocument.Activate
Selection.HomeKey Unit:=wdStory 'début du docoment
With Selection.Find
  .MatchWildcards = True
  .Execute FindText:="(<NOM>*µ)", Format:=True, Forward:=True
End With
While Selection.Find.Found
  Selection.MoveEnd Unit:=wdCharacter, Count:=-1
  Selection.Copy
  Documents("EtatCivil.doc").Activate
  Selection.PasteAndFormat (wdPasteDefault)
  ThisDocument.Activate
  Selection.Next(Unit:=wdParagraph, Count:=1).Select 'paragraphe suivant
  With Selection.Find
    .MatchWildcards = True
    .Execute FindText:="(<NOM>*µ)", Format:=True, Forward:=True
  End With
Wend
End Sub

A+
 
Re : Macro de copie sous word

Merci BrunoM45, pardon de ne pas t'avoir répondu plus tôt, mais j'ai la tête dans le guidon...
j'ai testé mais ça n'a pas fonctionné comme je voulais alors j'ai fait plus lonnnnnnnnnnng!

Mille mercis, biz et bon ouik!

C@thy
 
Re : Macro de copie sous word

Bonjour les zamis,

Moi je viens juste faire coucou à vous deux et surtout à C@thy que j'ai pas croisée depuis qq jours... Bruno c'est tout frais !

Bisous vous deux.

PS : il n'aurait pas fallu poster sous le forum "autres applications" ? (histoire de t'embêter C@thy).
 
Re : Macro de copie sous word

Ah merci ma Brigitte, ta présence est un rayon de soleil, un peu de douceur dans ce monde de brutes (sauf les XLDiens bien sûr!!!)
Vi, t'as raison, y'a un ot' forum + adapté... j'le f'rai plus, promis, j'veux pas fâcher Pascal.
Je voulais te faire un 'tit coucou, mais au boulot c'est de la démence, cadences infernales, je sais que tu me pardonnes...

bon, tant qu'j'y suis, je poste ma soluce, j'ai rajouté le fait de couper l'état civil tout en gardant le nom dans le fichier d'origine comme ça ça me fera un otr' fichier avec le nom + le reste...

voici ma macro finale :

Sub CopierEtatCivil2() 'CopierNomJusquaMu
ThisDocument.Activate
Selection.HomeKey Unit:=wdStory
With Selection.Find
.MatchWildcards = True
.Execute FindText:="(<NOM>*µ)", Format:=True, Forward:=True
End With
While Selection.Find.Found
Selection.MoveEnd Unit:=wdCharacter, Count:=-1
Selection.MoveStart Unit:=wdCharacter, Count:=-1
Selection.Copy
Documents("EtatCivil.doc").Activate
Selection.Paste
ThisDocument.Activate
Selection.MoveStart Unit:=wdParagraph, Count:=2
Selection.MoveEnd Unit:=wdCharacter, Count:=1
Selection.Cut
Selection.Collapse
With Selection.Find
.MatchWildcards = True
.Execute FindText:="(<NOM>*µ)", Format:=True, Forward:=True
End With
Wend
End Sub

Bibises et bon ouik

C@thy
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour