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

  • Initiateur de la discussion Initiateur de la discussion Loic2
  • 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 !

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
 
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
 
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
 
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
 
- 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

Discussions similaires

Retour