none
Enregistrer un e macro dans Word 2010 RRS feed

  • Question

  • Bonjour,

    Je n'arrive pas à enregistrer une macro dans Word 2012.

    La macro doit faire ceci :

    Dans le menu Publipostage, click sur l'icône Modifier la liste des destinataires

    La fenêtre Fusion et publipostage s'ouvre, click sur l'option Filtrer ...

    La fenêtre Filtre et trie s'affiche, dans la zone Champ, je sélectionne mon champ, dans la zone Comparaison, je choisi Egal à

    et enfin dans la zone Comparer à, je mets True

    Je valider par un clic sur le bouton OK, et encore sur le bouton OK

    Apres cela, je vais dans l'éditeur de VBA, je trouve bien la routine (par son nom) mais elle est vide, pas de code.

    Ma question :

    Comment faire pour faire enregistrer ces manipulations dans une macro?

    Merci de votre aide

    Salva


    • Modifié sa56 mercredi 25 avril 2012 07:59
    mercredi 25 avril 2012 07:58

Toutes les réponses

  • Bonjour,

    Dans les macros à enregistrement, tout n'est pas enregistré (trable) et notamment les opérations complexes comme celle-ci.

    Malheureusement pour, là, il va falloir l'écrire à la main...


    Argy

    mercredi 25 avril 2012 12:39
    Modérateur
  • Bonjour,

    Ok, mais alors j'ai besoin d'un peut d'aire.

    Je ne connais pas asser le VBA de Word pour arriver a faire ca !!!!!   snifffffffffff

    Dans Word 2000, il etait possible de le faire, mais en 2012 ....

    Pouriez-vous m'aider?

    Cordialement

    Salva

    mercredi 25 avril 2012 12:58
  • Supposant que vous avez une source de données issue d'un classeur Excel et d'un modèle Word servant de document de fusion, voici un exemple :

    Sub FiltrerActif()
    Const MODELE_FUSION                             As String = "C:\Mes Modèles\Mon modèle de fusion.dotx"
    Const CLASSEUR_EXCEL                            As String = "C:\Mes Sources\Mon classeur de données.xlsx"
    Const PLAGE_NOMMEE                              As String = "MaPlageDonnees"
    Dim oDoc                                        As Word.Document
    Dim strModeleFusion                             As String
    Dim strRequeteSQL                               As String
    
        On Error GoTo L_ErrFiltrer
    
        strModeleFusion = MODELE_FUSION
        Set oDoc = Application.Documents.Add(strModeleFusion)
    
        strRequeteSQL = "SELECT Nom, Prenom, Age FROM " & PLAGE_NOMMEE & " WHERE Actif = -1"
        With oDoc.MailMerge
            .OpenDataSource Name:=CLASSEUR_EXCEL, Connection:=PLAGE_NOMMEE, SqlStatement:=strRequeteSQL
            .Destination = wdSendToNewDocument
            .Execute
        End With
        MsgBox "Ca y est, c'est fusionné."
    
        On Error GoTo 0
    L_ExFiltrer:
        Set oDoc = Nothing
        Exit Sub
    
    L_ErrFiltrer:
        MsgBox Err.Description, 48, Err.Source
        Resume L_ExFiltrer
    End Sub
    


    Argy

    mercredi 25 avril 2012 15:14
    Modérateur
  • Bonjour,

    Merci pour votre aide.

    J'ai tente d'applique votre code dans Visual Studio 2010 (VB.Net)

    Je n'arrive pas a le faire "fonctionner"

    Pouriez-vous m'aider?

    Merci encore

    Cordialement

    Salva


    • Modifié sa56 jeudi 26 avril 2012 09:09
    jeudi 26 avril 2012 09:08
  • Déjà, faîtes le fonctionner sous Word...

    Ensuite, la transposition Interop ne devait pas vous poser de problème.


    Argy

    jeudi 26 avril 2012 09:59
    Modérateur
  • Bonjour,

    sous Word, ça marche.

    C'est dans VB.NEt, que j'ai le problème.

    Cordialement

    Salva

    vendredi 27 avril 2012 06:30