XL 2010 Macro permettant de sélectionner une feuille d'un autre tableau.

Loic2

XLDnaute Nouveau
Bonjour à tous,
Je tente depuis plusieurs jours, sans succès, d’améliorer une macro de publipostage.
Celle-ci me sert à sélectionner les informations d’une seule ligne de mon tableau numéro 1, de les copier, de les coller dans le tableau numéro 2, qui me permet ensuite de publiposter dans différents modèles de courrier.
Bien qu’un peu alambiqué, tout cela fonctionne très bien.
Mon problème est le suivant :

Je lance ma macro à partir du tableau numéro 1. Lorsque le modèle Word s’ouvre automatiquement, je dois à chaque fois sélectionner manuellement la feuille du tableau numéro 2 (qui ne contient qu’une feuille), en cliquant sur OK dans l’encadré « sélection du tableau » qui apparaît. Je souhaiterais que le fichier Word publiposté s'ouvre directement à l'exécution de la macro.
Est-il possible d’intégrer une ligne de code permettant d’automatiser cette action ? Si oui, à quel endroit dois-je l’intégrer ?
Voici le code :

Code:
  Sub test()
 

  Rows(ActiveCell.Row).Select
  With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent4
        .TintAndShade = 0.599993896298105
        .PatternTintAndShade = 0
    End With
    Application.CutCopyMode = False
    Selection.Copy
    Workbooks.Open Filename:= _
        "tableau n°2.xlsm"
    Windows("tableau n°1.xlsm").Activate
    Windows("tableau n°2.xlsm").Activate
        
    Application.ScreenUpdating = False
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Dim WordApp As Object
Dim WordDoc As Object
 
    Set WordApp = CreateObject("word.application")
    WordApp.Visible = True
      
    
    Set WordDoc = WordApp.Documents.Open("mon modèle word.docm")
    
    WordDoc.MailMerge.OpenDataSource Name:="tableau n°2.xlsm"
        
        Workbooks("tableau n°2.xlsm").Close Savechanges:=False
    
    
    WordDoc.MailMerge.Execute
    WordDoc.Close Savechanges:=False
    
    WordApp.ChangeFileOpenDirectory "publipostage réalisé"
    
    
 
End Sub

J'ai tenté avec "feuil1.select" et avec "Application.DisplayAlerts = False" mais cela ne fonctionne pas. Peut-être les ai-je intégrés au mauvais endroit.

En espérant que quelqu'un puisse m'aider,

Merci de votre attention.

Loïc
 

Loic2

XLDnaute Nouveau
Bonjour Daniel,

L’encadré « sélection du tableau » apparaît lorsque que je clique sur l'icone Word de la barre des tâches qui s'ouvre. Je pense que cet encadré empêche l'ouverture automatique du fichier word.

Je pense dès lors que cela doit correspondre à l'endroit en gras ci-dessous:
Code:
Sub test()
 

  Rows(ActiveCell.Row).Select
  With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent4
        .TintAndShade = 0.599993896298105
        .PatternTintAndShade = 0
    End With
    Application.CutCopyMode = False
    Selection.Copy
    Workbooks.Open Filename:= _
        "tableau n°2.xlsm"
    Windows("tableau n°1.xlsm").Activate
    Windows("tableau n°2.xlsm").Activate
        
    Application.ScreenUpdating = False
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Dim WordApp As Object
Dim WordDoc As Object
 
    Set WordApp = CreateObject("word.application")
    WordApp.Visible = True
      
    
    Set WordDoc = WordApp.Documents.Open("mon modèle word.docm")
    
    WordDoc.MailMerge.OpenDataSource Name:="tableau n°2.xlsm"
        
        Workbooks("tableau n°2.xlsm").Close Savechanges:=False
    
    
    WordDoc.MailMerge.Execute
    WordDoc.Close Savechanges:=False
    
    WordApp.ChangeFileOpenDirectory "publipostage réalisé"
        
 
End Sub


Encore merci,

Loïc
 

Loic2

XLDnaute Nouveau
Le gras ne semble pas apparaître.

Je graissais cet endroit-ci du code :

Code:
Set WordApp = CreateObject("word.application")
    WordApp.Visible = True
      
    
    Set WordDoc = WordApp.Documents.Open("mon modèle word.docm")
    
    WordDoc.MailMerge.OpenDataSource Name:="tableau n°2.xlsm"
        
        Workbooks("tableau n°2.xlsm").Close Savechanges:=False
    
    
    WordDoc.MailMerge.Execute
 

danielco

XLDnaute Accro
D'après l'aide VBA :

VB:
With docNew.MailMerge
 .MainDocumentType = wdCatalog
 .OpenDataSource Name:="C:\Documents\Names.xls", _
 ReadOnly:=True, _
 Connection:="Sales"
End With

Remplace le nom du classeur par le tien. "Sales" est le nom du tableau contenant les données.

Daniel
 

Loic2

XLDnaute Nouveau
Encore merci Daniel, cela refonctionne, mais l'encadré de choix du tableau apparaît toujours (et au même moment).

Voici l'encadré en question :
encadré choix du tableau.PNG
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 794
Membres
101 817
dernier inscrit
carvajal