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

VBScript Discussion :

Mail Merge en VBS


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 258
    Par défaut Mail Merge en VBS
    Bonjour a tous,
    je souhaiterai realiser un mail merge a partir d'un script vb, j'ai donc suivit l'exemple de microsoft: http://support.microsoft.com/kb/285332 et modifier pour en faire un script. Seulement ca ne marche pas, il me mets tjrs l'erreur: expected statement lorsque j'ouvre les dataSource. Ci dessous le code:

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    Function IPFaxMerge()
     
      Dim oApp 'As Word.Application
      Dim oMainDoc 'As Word.Document
      Dim oSel 'As Word.Selection
      Dim sDBPath 'as String
     
      'Start Word
      Set oApp = CreateObject("Word.Application")
      Set oMainDoc = oApp.Documents.Add
     
      With oMainDoc.MailMerge
     
            .MainDocumentType = wdFormLetters
     
            'Set up the mail merge data source to Northwind.mdb.
            sDBPath = "C:\Program Files\Microsoft Office\" & _
                      "OfficeXP\Samples\Northwind.mdb"
     
            .OpenDataSource Name:=sDBPath, _
               SQLStatement:="SELECT * FROM [Customers]"
     
            'Add the field codes to the document to create the form letter.
            With .Fields
                Set oSel = oApp.Selection
                .Add oSel.Range, "CompanyName"
                oSel.TypeParagraph
                .Add oSel.Range, "Address"
                oSel.TypeParagraph
                .Add oSel.Range, "City"
                oSel.TypeText ", "
                .Add oSel.Range, "Country"
                oSel.TypeParagraph
                oSel.TypeParagraph
                oSel.TypeText "Dear "
                .Add oSel.Range, "ContactName"
                oSel.TypeText ","
                oSel.TypeParagraph
                oSel.TypeParagraph
                oSel.TypeText " This letter is to inform you..."
                oSel.TypeParagraph
                oSel.TypeParagraph
                oSel.TypeText "Sincerely, [Your Name Here]"
            End With
        End With
     
        'Perform the mail merge to a new document.
        With oMainDoc
            .MailMerge.Destination = wdSendToNewDocument
            .MailMerge.Execute Pause:=False
        End With
     
     
    End Function
     
     
    ' *** MAIN **************************************   
    Call IPFaxMerge()

    merci de votre aide

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With oMainDoc.MailMerge
     
            .MainDocumentType = wdFormLetters
     
            'Set up the mail merge data source to Northwind.mdb.
            sDBPath = "C:\Program Files\Microsoft Office\" & _
                      "OfficeXP\Samples\Northwind.mdb"
    Cela ne me semble pas possible dans un with.
    Tout doit commencer par '.'

    D'ailleurs expected statment c'est une erreur généré à cause d'une mauvaise synthaxe. D'un oublis comme un then oublié lors d'un if.
    Quel ligne d'ailleur pour l'erreur ?

    De façon générale le with ne sert pas à grand chose et pose plus de problème qu'autre chose.

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 258
    Par défaut
    Merci de ta reponse,
    je ne pense pas que ca vienne du '.' sachant que dans le code du site d'ou vienne ces sources, c fait comme ca: http://support.microsoft.com/kb/285332 (c'est des sources microsoft quant meme )

    j'ai donc voulu faciliter mon code de la facon suivante:

    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
     
    Function IPFaxMerge()
     
      Dim wdo ' As Word.Application
      Dim wdoc ' As Word.Document
     
        'Start a new main document for the mail merge.
        Set wdoc = wdo.Documents.Add
     
     
        wdoc.MailMerge.MainDocumentType = wdCatalog
        wdoc.MailMerge.OpenDataSource Name:="C:\Documents and Settings\q731472\Desktop\photos\MSLEisai_14Dec07.xls", _
            ReadOnly:=True, _
           Connection:="MSL"
     
     
    End Function
     
     
    ' *** MAIN **************************************   
    Call IPFaxMerge()
    meme erreur: a la ligne: wdoc.MailMerge.OpenDataSource
    comme tu m'as dit j'ai change et deleter la methode du with mais ca n'a rien changer :'(

    merci de votre aide

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 258
    Par défaut
    PS: je me demande si il ne faut pas installer des driver ODBC ou autre pour que le vbs puisse comuniquer avec une datasource Excel, ca aurait du sens ?

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Citation Envoyé par suckthewindow Voir le message
    PS: je me demande si il ne faut pas installer des driver ODBC ou autre pour que le vbs puisse comuniquer avec une datasource Excel, ca aurait du sens ?
    Je ne pense pas, excel n'est qu'un tableur pas une base de donnée. Pas besoin de driver, juste de l'application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set oApp = CreateObject("Word.Application")
      Set oMainDoc = oApp.Documents.Add
    Indispensable à ne pas enlever !!!!

    Je ne pense pas que cela soit un paramètre correcte. ni d'ailleurs pour les autres.
    Cela ressemble plus à du VBA.

    Regarde ici et ici et fait plutot comme cela.

  6. #6
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 258
    Par défaut
    Bonjour et merci de vos reponses,
    J'ai fait comme dit sur ce que tu m'as donne, je n'ai plus la meme erreur (j'ai l'impression que ct du VBA et pas VBScript ... c la premiere fois j'ecris en VB et je suis un peu pommé avec ce que je trouve sur le net: VB, VBA, VBScript ...)
    j'ai donc le code 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
     
    Const DontConfirmConversions = False
    Const OpenReadOnly = True
    Const DontLinkToSource = False
    Const DontAddToRecentFiles = False
    Const NoPasswordDocument = ""
    Const NoPassWordTemplate = ""
    Const Revert = True
    Const DontWritePasswordDocument = False
    Const DontWritePassWordTemplate = False
    Const NoConnection = ""
    Const NoSql = ""
    datasource = "C:\Documents and Settings\q731472\Desktop\MSLEisai_14Dec07.xls"
     
    Function IPFaxMerge()
      Dim wdo ' As Word.Application
      Dim wdoc ' As Word.Document
      Set wdo = CreateObject("Word.Application")
      'Start a new main document for the mail merge.
      Set wdoc = wdo.Documents.Add
      Set myMMo = wdoc.MailMerge
      Call myMMo.opendatasource( _
            datasource, _
            wdOpenFormatText, _
            DontConfirmConversions, _
            OpenReadOnly, _
            DontLinkToSource, _
            DontAddToRecentFiles, _
            NoPasswordDocument, _
            NoPassWordTemplate, _
            Revert, _
            DontWritePasswordDocument, _
            DontWritePassWordTemplate, _
            NoConnection, _
            NoSql, NoSql)	
    End Function
    ' *** MAIN **************************************   
    Call IPFaxMerge()
    A l'execution j'ai l'erreur suivante: Type mismatch: 'myMMo.opendatasource'. Est ce que qq voit d'ou ca vient ?

    merci

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

Discussions similaires

  1. Envoi mail script en vbs
    Par nathalie.de dans le forum VBScript
    Réponses: 6
    Dernier message: 19/09/2014, 13h55
  2. Réponses: 2
    Dernier message: 12/05/2014, 13h20
  3. [AC-2010] Mail merge conditionnel
    Par Juuul dans le forum VBA Access
    Réponses: 1
    Dernier message: 03/12/2012, 17h22
  4. Limite de 20 caractères pour le mail merge dans word
    Par Hélène Penders dans le forum Word
    Réponses: 2
    Dernier message: 08/08/2008, 12h41
  5. création/suppression de compte mail exchange en vbs
    Par yubirin dans le forum Exchange Server
    Réponses: 2
    Dernier message: 23/10/2007, 02h44

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