Transfert automatisé (VBA) de paragraphes d'un document vers un autre

Anonyme
2022-08-22T09:29:39+00:00

Bonjour,

J'aimerais trouver une solution pour automatiser le transfert de certains paragraphes d'un fichier Word qui sont numérotés (selon le sommaire du document) vers un autre fichier Word qui dispose aussi d'une numérotation pour chaque paragraphe.

J'ai pensé à passer par les signets/bookmarks dans Word, du coup il faut que je renomme touts les paragraphes que je souhaite déplacer/copier vers le nouveau Word et dans un endroit en particulier (selon la numérotation). Cependant, s'il existe un autre moyen que d'utiliser les signets, je suis preneur (par exemple si c'est possible, de faire une sorte de correspondance entre l'ancien fichier Word et le nouveau au niveau de la numérotation des paragraphes ?)

Ci-dessous un code pour déplacer les signets et leur contenu dans un Excel :

Sub transfertsignet() Dim wrd As Object``Dim i As Integer, aBookmark``Set wrd = CreateObject("Word.Application")``wrd.Documents.Open Filename:="chemin du fichier\nomdufichier.docx"``'wrd.Visible = True``If wrd.ActiveDocument.Bookmarks.Count >= 1 Then``For Each aBookmark In wrd.ActiveDocument.Bookmarks``Worksheets("Sheet1").Range("a1").Offset(i, 0) = aBookmark.Name``Worksheets("Sheet1").Range("a1").Offset(i, 1) = aBookmark.Range``i = i + 1``Next aBookmark``End If``wrd.Quit``Set wrd = Nothing``End Sub

Merci de votre aide et bonne fin de journée à tous !

Microsoft 365 et Office | Word | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

2 réponses

  1. Anonyme
    2022-08-22T14:10:54+00:00

    Bonjour Clarence,

    Merci pour votre aide. j'ai utilisé le code sur le lien :

    https://answers.microsoft.com/en-us/msoffice/forum/all/get-certain-paragraphs-from-one-document-and-copy/e56f3f37-393c-43cd-af07-01d066b25eda

    Mais j'ai un message d'erreur sur la variable oDocSource, pourquoi ?

    Image

    Aussi dans le code que vous m'avez donné, où dans le code la macro va-t-elle copier le paragraphe voulu du fichier Word A vers le nouveau fichier Word B ?

    Pour information, le fichier Word A est composé de différents paragraphes qui sont numérotés, je souhaiterais par rapport à la numérotation ou autre moyen (si vous en avez un), sélectionner du fichier Word A, les paragraphes numérotés et leurs contenus pour les coller dans le fichier Word B qui disposera aussi de notations mais différentes pour l'emplacement des données comme par exemple :

    Image

    Image

    J'espère avoir été plus précis dans ma demande.

    Merci Clarence.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2022-08-22T10:06:03+00:00

    Bonjour Tony,

    Merci d’avoir posté votre requête. Je m’appelle Clarence, je serai plus qu’heureux de vous aider avec votre préoccupation.

    Pour résoudre votre requête, veuillez essayer le code ci-dessous.

    Dim oRng comme plage Dim oRngDestination comme plage Dim oDocSource en tant que document Dim oDocDestination en tant que document

    Définir oDocSource = ActiveDocument Définir oDocDestination = Documents.Add

    oDocSource.Activer '''vous devrez peut-être « effacer » '''tous les paramètres de recherche précédents '''Je réutilise cette routine : '''http://word.mvps.org/FAQs/MacrosVBA/ClearFind.htm Avec sélection . Unité HomeKey:=wdStory Avec. Trouver . ClearFormatting .text = « QUESTION*^13 » . MatchWildcards = Vrai Faire pendant que . Exécuter Définir oRng = Selection.Range Avec oRng . Direction de réduction:=wdCollapseEnd Do While InStr(1, LCase(.text), « question ») = 0 . MoveEnd unit:=wdParagraph, Count:=1 Si. End = oDocSource.Range.End Alors Quitter Do Fin Si Boucle Si. Paragraphes.Last.Range <> oDocSource.Paragraphes.Last.Range Then . MoveEnd unit:=wdParagraph, Count:=-1 Fin Si . Copier Définir oRngDestination = oDocDestination.Range oRngDestination.Collapse Direction:=wdCollapseEnd oRngDestination.PasteAndFormat wdFormatOriginalFormatage Terminer par Boucle Terminer par Terminer par

    Visitez ce lien pour votre https://answers.microsoft.com/en-us/msoffice/forum/all/get-certain-paragraphs-from-one-document-and-copy/e56f3f37-393c-43cd-af07-01d066b25eda de référence

    N’hésitez pas à nous envoyer un message si vous avez besoin d’aide supplémentaire.

    Redonner à la Communauté. Aidez la prochaine personne qui a ce problème en indiquant si cette réponse a résolu votre problème. Cliquez sur Oui ou Non ci-dessous.

    Sinceres salutations Clarence

    Cette réponse a été traduite automatiquement. Par conséquent, il peut y avoir des erreurs grammaticales ou des expressions étranges.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire