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

Macros et VBA Excel Discussion :

Publipostage excel -> word , Requete SELECT


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Publipostage excel -> word , Requete SELECT
    Bonjour,

    Suite à l'utilisation de l'exemple de code (ftp://ftp-developpez.com/silkyroad/E...eWordExcel.pdf) pour automatiser la génération d'un bon de commande via le publipostage excel vers word.

    J'ai donc crée un fichier nommé MonBonDeCommande.doc .
    Un fichier excel avec une feuille nommé : "Commandes"
    qui contient plusieurs colonne, don :
    "Frais" qui contient les frais de port.
    ....

    Le problème est que la requête SELECT ne passe pas a l'exécution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM [Commandes$] WHERE [Frais] >20"
    Le Message d'erreur est : docWord.MailMerge.DataSource.Query...=<L'objet demandé n'est pas disponible>


    Voici l'exemple du web que j'ai associé à un bouton :

    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
    Private Sub CommandButton1_Click()
    'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"
    Dim docWord As Word.Document
    Dim appWord As Word.Application
     
    Application.ScreenUpdating = False
     
    Set appWord = New Word.Application
    appWord.Visible = False
     
    'Ouverture du document principal Word
    Set docWord = appWord.Documents.Open("C:\MonBonDeCommande.doc")
     
    'Création de la requête:
    'N'oubliez pas d'ajouter le symbole $ après le nom de la feuille
     
    docWord.MailMerge.DataSource.QueryString = _
    "SELECT * FROM [Commandes$] WHERE [Frais] > 20"
    'Fusion
    With docWord.MailMerge
    .Destination = wdSendToPrinter
    With .DataSource
    .FirstRecord = wdDefaultFirstRecord
    .LastRecord = wdDefaultLastRecord
    End With
    .Execute Pause:=True
    End With
     
    'Fermeture du document Word
    docWord.Close False
    appWord.Quit
     
    Application.ScreenUpdating = True
    End Sub
    Linodev.
    Je cherche une bonne définition de l'utilisation de SELECT et de sa syntaxe dans excel.
    Peut on faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM [mafeuille$] WHERE [Fournisseur] = "Dunlop" AND [commande_a_passer] = "oui""

  2. #2
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Salut,


    J'ai trouvé après de longue heure...

    Pour info j'ai trouver une solution :
    (la base était pas ouverte ...)

    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
    Private Sub CommandButton1_Click()
    '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 Chemin As String
        Dim NomFich As String
        Dim NomBase As String
     
        Chemin = "C:\Documents and Settings\user\Bureau\test\"
        NomFich = "fusion.doc"
        NomBase = "base.xls"
     
        'ouvre une session Word
        Set appWord = CreateObject("word.application")
        appWord.Visible = True
        Set docWord = appWord.Documents.Open(Filename:=Chemin & NomFich)
        DoEvents
     
        'Création de la requête:
        'N'oubliez pas d'ajouter le symbole $ après le nom de la feuille
        With docWord.MailMerge
            'La base Excel est dans le même répertoire que le doc Word.
            .OpenDataSource Name:=Chemin & NomBase, _
            Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _
                "DBQ=" & Chemin & NomBase & "; ReadOnly=True;", _
                SQLStatement:="SELECT * FROM [Commandes$] WHERE [Etats de la Commande] = ""Cmd à Passer"" And [Fournisseur] = ""JoeBarTeam"""
     
     
        'Fusion
        With docWord.MailMerge
            .Destination = wdSendToPrinter
     
                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

    A+

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Pense aux balises code -> Sélection du code + 1 clic sur # et c'est tout.
    Bien ton code mais tu avais la réponse en partie ici, et l'autre partie et une longue explication

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

Discussions similaires

  1. Publipostage Excel vers Word
    Par muchmorehuman dans le forum Word
    Réponses: 2
    Dernier message: 08/12/2014, 15h40
  2. Publipostage excel -> word , Requete SELECT
    Par linodev dans le forum Excel
    Réponses: 1
    Dernier message: 29/06/2007, 23h34
  3. Publipostage excel word
    Par hanky dans le forum VBA Word
    Réponses: 10
    Dernier message: 21/05/2007, 08h52
  4. publipostage Excel --> Word
    Par X...FoR...X dans le forum Excel
    Réponses: 1
    Dernier message: 16/05/2006, 14h59
  5. [BDE & excel] la syntaxe d'une requete select
    Par mandale dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/08/2004, 15h38

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