IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Pilotage publipostage depuis excel : choisir les destinataires [XL-2003]


Sujet :

Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Pilotage publipostage depuis excel : choisir les destinataires
    Bonjour,

    Permettez-moi tout d'abord de vous féliciter de la qualité de vos contributions; étant novice, j'ai, grâce à vous, débuté la constitution d'un système basé sur excel et permettant la gestion de dossiers - relativement nombreux - et d'éditer des documents avec Word.

    Mon projet est le suivant :
    A partir d'excel (bouton et code VBA), je souhaite lancer une procédure de publipostage avec word mais n'y envoyer que les "lignes excel" au sein desquelles à la "colonne" X se trouve l'argument "oui" (ou 1 ou non vide).

    Vous l'avez compris, malgré toutes mes recherches, je n'ai pas trouvé le code VBA qui me permet de filtrer les données avant de les envoyer dans word...

    Merci d'avance à ceux qui voudront bien m'aider.

    Bonne fin de journée.

    PS : j'ai essayé ce code où "Liste" est la feuille et "fusion" la fameuse colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    .OpenDataSource Name:=Chemin & NomBase, _
            Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _
                "DBQ=" & NomBase & "; ReadOnly=True;", _
                SQLStatement:="SELECT * FROM
    [Liste$] WHERE [fusion] = ""1"" "
    mais j'ai une erreur dessus.

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 495
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 495
    Points : 16 407
    Points
    16 407
    Par défaut
    Bonjour

    Dans word on peut filtrer les destinataires comme avec un filtre automatique dans Excel et ce filtre est utilisé d'une publipostage à l'autre sans qu'il soit nécessaire de le refaire.

    Il suffit donc de paramétrer ton filtre côté Word.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour et merci de votre reponse.

    J'ai utilisé cette option et elle fonctionne quand je lance directement le fichier DOC. Par contre, quand je lance le publipostage depuis excel, ce filtre n'est plus actif. C'est pourquoi je tente de filtrer depuis une macro excel.

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 495
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 495
    Points : 16 407
    Points
    16 407
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLStatement:="SELECT * FROM [Liste$] WHERE fusion = '1' "
    Attention à la casse du mot fusion qui doit être correcte.

    Si 1 est en numérique =1 doit marcher

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Il y avait une petite erreur effectivement.

    A présent la macro est exécutée mais à l'ouverture du document de fusion, une fenêtre s'affiche et me demande de choisir une table.

    Le code utilisé est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Sub forum_select()
     
    'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"
        Dim docWord As Word.Document
        Dim appWord As Word.Application
        Dim NomBase As String
     
        NomBase = "Y:\## SPAT\03 Suivi budgétaire\Listing\2014\Test SPAT  2014.xls"
     
        Application.ScreenUpdating = False
        Set appWord = New Word.Application
        appWord.Visible = True
        'Ouverture du document principal Word
        Set docWord = appWord.Documents.Open("C:\test\fus.doc")
     
        'fonctionnalité de publipostage pour le document spécifié
        With docWord.MailMerge
            'Ouvre la base de données
            .OpenDataSource Name:=NomBase, _
                Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _
                "DBQ=" & NomBase & "; ReadOnly=True;", _
                SQLStatement:="SELECT * FROM
    [liste$] WHERE [fusion] = ""1"" "
     
     
     'IS NOT NULL à tester
     
     
        'Fusion
        With docWord.MailMerge
            .Destination = wdSendToNewDocument
     
                With .DataSource
                    .FirstRecord = wdDefaultFirstRecord
                    .LastRecord = wdDefaultLastRecord
                End With
            .Execute Pause:=True
        End With
        End With
        'Fermeture du document Word
        docWord.Close False
        'appWord.Quit
     
        Application.ScreenUpdating = True
     
    End Sub
    Je ne vois pas ce qui cloche.


    Merci pour les balises

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Me suis trompé de code...
    IL y à des jours où il vaudrait mieux rester coucher.

    Le code rectifié après avoir nettoyé le fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Sub forum_select()
     
     
    'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"
        Dim docWord As Word.Document
        Dim appWord As Word.Application
        Dim NomBase As String
     
        NomBase = "C:\test\Test.xls"
     
        Application.ScreenUpdating = False
        Set appWord = New Word.Application
        appWord.Visible = True
        'Ouverture du document principal Word
        Set docWord = appWord.Documents.Open("C:\test\fus.doc")
     
        'fonctionnalité de publipostage pour le document spécifié
        With docWord.MailMerge
            'Ouvre la base de données
            .OpenDataSource Name:=NomBase, _
                Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _
                "DBQ=" & NomBase & "; ReadOnly=True;", _
                SQLStatement:="SELECT * FROM[Liste$] WHERE Fusion = '1' "
     
     
     'IS NOT NULL à tester
     
     
        'Fusion
        With docWord.MailMerge
            .Destination = wdSendToNewDocument
     
                With .DataSource
                    .FirstRecord = wdDefaultFirstRecord
                    .LastRecord = wdDefaultLastRecord
                End With
            .Execute Pause:=True
        End With
        End With
        'Fermeture du document Word
        docWord.Close False
        'appWord.Quit
     
        Application.ScreenUpdating = True
     
    End Sub

    Le format de cellule de la colonne Fusion est "nombre".

    Au lancement de Word, une fenêtre demande de choisir la table.

  7. #7
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 495
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 495
    Points : 16 407
    Points
    16 407
    Par défaut
    Bonjour

    Essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLStatement:="SELECT * FROM [Liste$] WHERE Fusion = 1 "
    L'espace manquant peut gêner et si numérique pas de '

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merveilleux, CA MARCHE parfaitement!!!
    Merci beaucoup!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/03/2014, 18h20
  2. Publipostage depuis Excel
    Par Vidra dans le forum Word
    Réponses: 3
    Dernier message: 26/11/2013, 20h42
  3. Publipostage depuis Excel
    Par Pierrea4564 dans le forum Général VBA
    Réponses: 2
    Dernier message: 16/02/2011, 16h50
  4. Pilotage ACCESS depuis Excel
    Par Nako_lito dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/09/2009, 13h49
  5. Traitement Publipostage depuis excel
    Par tissou_vba dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/07/2007, 13h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo