Partager via

Erreur vba mail merge depuis version build 2106

Anonyme
2021-07-08T12:52:59+00:00

Bonjour,

Je rencontre un problème lors de la génération de document Word publiposté vers un document unique.

Cela se produit pour les clients passant en build 2106 depuis peu.

Le code utilisé est le suivant:

MyWord.ActiveDocument.MailMerge.Destination = 0 ' wdSendToNewDocument 

MyWord.ActiveDocument.MailMerge.SuppressBlankLines = True 

MyWord.ActiveDocument.MailMerge.Execute pause:=False

L'erreur déclenchée est celle-ci : "Ce document contient des champs qui peuvent partager des données avec des fichiers externes et des sites Web. Il est important que ce fichier provienne d'une source digne de confiance."

En manuel, l'erreur de se produit pas.

J'ai testé plusieurs options du centre de confidentialités sans succès.

Merci de votre aide pour une solution qui affecte maintenant une cinquantaine de clients.

Nouvelle précision :

il semble que cela affecte des modèles devant fusionné avec une image externe en jpg.

le nom du chemin est précisé sous { INCLUDEPICTURE "{ MERGEFIELD "IMAGE" }" * MERGEFORMAT d }

Les images se trouvent soient sur le disque dur local soit sur un emplacement réseau.

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

5 réponses

  1. Anonyme
    2021-07-09T14:46:21+00:00

    Super code, bravo.

    C'est vrai qu'avec ma méthode, on peut toujours tomber sur un utilisateur qui va répondre Non.

    Par contre, je me pose la question, Quid le jour ou Microsoft corrige le problème ?

    Ton code devrait toujours être fonctionnel mais je me méfie.

    Ce serait bien de revenir sur ce sujet une fois la mise à jour réalisée.

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

    0 commentaires Aucun commentaire
  2. Supprimé

    Cette réponse a été supprimée en raison d’une violation de notre Code de conduite. La réponse a été signalée manuellement ou identifiée via la détection automatisée avant que l’action ne soit entreprise. Pour obtenir plus d’informations, veuillez consulter notre Code de conduite.


    Les commentaires ont été désactivés. En savoir plus

  3. Anonyme
    2021-07-09T14:19:47+00:00

    Bonjour à vous deux,

    Je vous remercie vivement pour vos réponses.

    Après de longues heures, j'ai finalement trouver une solution de contournement.

    En voici les grandes lignes :

    Lorsque le document maitre est généré, j'identifie la shape qui contient l'image en lui ayant donnée un nom dans le modèle Word, ici "IMAGE".

    Le bug est déclenché si la fusion de word détecte un chemin de fichier dans les champs de publipostage! Greuh !

    il faut donc enlever le lien sur l'image avec Fields.Unlink :

    Dim wshp As Object

        With MyWord 
    
            For Each wshp In .ActiveDocument.Shapes 
    
                If wshp.Name = "IMAGE" Then 
    
                    wshp.Select
    
                   **.selection.Fields.Unlink** 
    
                End If 
    
             Next wshp 
    
         End With
    

    Faire la fusion normalement:

    MyWord.ActiveDocument.MailMerge.Destination = 0 ' wdSendToNewDocument 
    
    MyWord.ActiveDocument.MailMerge.SuppressBlankLines = True 
    
    MyWord.ActiveDocument.MailMerge.Execute pause:=False
    

    Positionner le document maître sur son premier enregistrement :

    With DocPrincipal.MailMerge.DataSource 
    
        .ActiveRecord = -4 ' wdFirstRecord 
    
        **DTposition = .ActiveRecord** 
    
    End With
    

    Scanner le document de fusion obtenu pour mettre l'image depuis le chemin contenu dans datasource du document maître.

    Il est important d'utiliser l'option False sur le second paramètre de AddPicture sinon le bug réapparaît.

    With MyWord

            For Each wshp In .ActiveDocument.Shapes 
    
                If wshp.Name = "IMAGE" Then 
    
                    wshp.Select 
    
                    'avant bug maj 2106 Microsoft 
    
                    '.selection.Fields.update 
    
                    DocPrincipal.MailMerge.DataSource.ActiveRecord = **DTposition** 
    
                    Set oWdShp = MyWord.selection.InlineShapes().AddPicture(DocPrincipal.MailMerge.DataSource.DataFields("IMAGE").Value, **False**, True) 
    
                    **DTposition = DTposition + 1** 
    
                End If 
    
            Next wshp 
    

    End With

    Souhaitant que cette solution , supposée temporaire …, puisse vous aider.

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

    0 commentaires Aucun commentaire
  4. Anonyme
    2021-07-09T08:08:44+00:00

    Bonjour JJP_777,

    J'ai exactement le même problème, aussi avec des images.

    Pour pouvoir contourner le problème, j'ai adapté mon code de la façon suivante si ça peut t'aider :

    Code de préparation ...

    ==> Ajout pour contourner le problème (je réduis toutes les fenêtres ouvertes car le message apparaît toujours en arrière plan)

        Application.WindowState = xlMinimized  
        CreateObject("shell.application").minimizeall     'Réduction de toutes les fenêtres ouvertes  
        UF\_Wait.Show 0            'Apparition à l'écran d'une boite pour patienter avec un message pour cliquer sur Oui  
        UF\_Wait.Top = 100       'Déplacement de la Userform car sinon le message apparaît juste derrière et ne se voit pas  
        UF\_Wait.Repaint           'Répétition de la Userform pendant tout le process  
    

    Suite du Code ...

    ==> Ajout à la fin pour faire réapparaitre Excel et le Pdf issu du publipostage

       Unload UF\_Wait
    
      Application.WindowState = xlNormal
    
      AutreApp.Open (FichierPDF)  
    

    Et voici un aperçu de mon UF_Wait

    Image

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

    0 commentaires Aucun commentaire
  5. Doug Robbins - MVP - Office Apps and Services 323K Points de réputation MVP Modérateur bénévole
    2021-07-09T02:47:35+00:00

    Il y a une erreur dans cette version de Word qui a été signalée à l'équipe produit de Microsoft Word, nous pouvons donc nous attendre à un correctif dans un proche avenir.

    En attendant, la seule chose que vous pouvez faire est de revenir à la version précédente.

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

    0 commentaires Aucun commentaire