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 :

Fusion avec l'option catalogue


Sujet :

VBScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 20
    Par défaut Fusion avec l'option catalogue
    j'utilise une commande Wscript.exe sous dos pour lancer le programme de fusion en vbs .
    mais le problème est le suivant :
    la fusion à deux modes lettre type ou reprtoire(catalogue précedement) mais mon document à besoin des deux en même temps , puisque je dois avoir une premiére feuille pour la sociéte et les suivantes pour les employés .
    pour cela j'ai retrouvé du code en vb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ObjWord.ActiveDocument.MailMerge.MainDocumentType = Word.WdMailMergeMainDocType.wdCatalog
    mais en vbscript n'est pas reconnu !! pour cela j'ai pris la valeur ( 3 = option du cataloguage )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.MailMerge.MainDocumentType = 3
    le fichier word se referme juste aprés la confirmation , ( mais quand je remet la valeur (0 = représente celle de Word.WdMailMergeMainDocType.wdFormLetters )


  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 : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Peut tu être plus clair ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 20
    Par défaut
    je veux utiliser l'ption de fusion en catalogue (repertoire) ; et pour cela j'ai trouvé un code en vb qu'il le fait , mais en vbscript dé que je la met en oeuvre le document word se reférme ( je change du mode letter en catalogue ).
    donc en gros j'ai tout le code de la fusion d'un word avec un fichier txt via un script vb mais pour activer l'option ' catalogue je n'ai pas su le faire

  4. #4
    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 : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Desole mais ce n'est toujours pas clair, peut être qu'avec des vrais phrases je pourrait comprendre ton problème. Notemment je ne comprends pas ça :
    ( mais quand je remet la valeur (0 = représente celle de Word.WdMailMergeMainDocType.wdFormLetters )
    et ça :
    ( je change du mode letter en catalogue ).
    Or cela semble important.
    Au fait, il manque souvent les sujet à tes phrases !!!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 20
    Par défaut
    ok ! , Je m’explique !
    J’ai utilisé la fusion avec l’option 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
    With ActiveDocument.MailMerge
          .Destination = wdSendToNewDocument
          .MailAsAttachment = False
          .MailAddressFieldName = ""
          .MailSubject = ""
          .SuppressBlankLines = True
        
        .MainDocumentType = 0  ' 0 = wdFormLetters
          With .DataSource
              .FirstRecord = wdDefaultFirstRecord
              .LastRecord = wdDefaultLastRecord
          End With
          .Execute True
           oAutoText.Delete
        End With
    Pour créer une nouvelle page pour chaque enregistrement ,

    Mais maintenant je dois créer juste une nouvelle ligne pour chaque enregistrement et cela se fait de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .MainDocumentType = 3  ' 3 = wdCatalog
    Mais dé que le word s’ouvre il se referme automatiquement sans je puisse sauvegarder le document ou le consulter

    merci , j'oublie toujours de me mettre a la place des autres pour me compendre

  6. #6
    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 : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Je n'aime pas trop le with, surtout quand on l'imbrique, on se melange vite les piceaux, mais je ne pense pas que ton problème vienne de la. Bien que je me demande ce que donne qui se trouve dans le with, ca ne risque pas de donner au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocumentoAutoText.Delete
    ?
    Mais sinon dans le code que tu m'as donnés, tu changes juste la valeur de ?
    Si c'est le cas, es tu sur que tu peut créer une nouvelle ligne sans créer d'abord une nouvelle page, à moins bien sur que tu ouvres un document contenant des pages ?
    Une question toute bête, es tu sur que le type catalog existe, pour ta version de word, ou qu'il n'est pas desactive ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 20
    Par défaut
    je ne sais plus comment , mais maintenant ça marche ! merci a tout

    au fait , le voici 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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    Option Explicit
    On error Resume next
     
    Const wdSendToNewDocument=0
    Const wdDefaultFirstRecord = 1
    Const wdDefaultLastRecord = -16
     
    Dim DEBUG
    Dim WSHShell 
    Dim i
    Dim objArgs 
     
    Dim AppWord
    Dim ActiveDocument
    Dim DocumentResultat
    Dim TmpString 
    Dim ErrorLevel
    Dim DocFileName 
    Dim TxtFileName 
    Dim oDco
     
    '--------------------------------------------------------
    'Init
    ErrorLevel = 0
    '--------------------------------------------------------
    'Main 		
    		Set objArgs = Wscript.Arguments	
    		If objArgs.Count > 1  then	 
    	 		DocFileName = objArgs(0)
    			TxtFileName = objArgs(1)
    		Else
    			Wscript.Quit(ErrorLevel)
    		End if
    	  Set WSHShell = WScript.CreateObject("WScript.Shell")		
     
          Set AppWord = CreateObject("Word.Application")
        AppWord.Visible = True
     
        AppWord.DisplayAlerts = True
    		'Merge ... ation    
        Set ActiveDocument = AppWord.Documents.Open(DocFileName)
         ActiveDocument.MailMerge.MainDocumentType = 3
         ActiveDocument.Activate
        ' **** Ouverture de la source de données
         ActiveDocument.MailMerge.OpenDataSource (TxtFileName)
       	 'MsgBox "Av Fusion"
    	'Paramétrage et lancement du publipostage
        With ActiveDocument.MailMerge
          .Destination = wdSendToNewDocument
          .MailAsAttachment = False
          .MailAddressFieldName = ""
          .MailSubject = ""
          .SuppressBlankLines = True
           Dim oAutoText
        Set oAutoText = AppWord.NormalTemplate.AutoTextEntries.Add _
        ("MyLabelLayout", ActiveDocument.Content)
     
        .MainDocumentType = 3  ' 1 = wdMailingLabels
          With .DataSource
              .FirstRecord = wdDefaultFirstRecord
              .LastRecord = wdDefaultLastRecord
          End With
          .Execute True
        End With            
     
    		'Fermeture du modele    
    		'ActiveDocument.close	
     
    		AppWord.ActiveDocument.SaveAs("c:\try.doc")	
        Set DocumentResultat = AppWord.ActiveDocument
        'Print the document.                     
        'DocumentResultat.PrintOut
     
    	  'Save the document.    	  
        'DocumentResultat.SaveAs FileName=:"c:\Fusionok.doc"
        'DocumentResultat.Save 
        'DocumentResultat.Close
     
        ' Quit Word.   
    		'MsgBox "Av quit"        
        'AppWord.Quit
     
    Wscript.Quit

  8. #8
    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 : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Je crois que cela marche parce que tu as enleve :

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

Discussions similaires

  1. Recherche avec Locate option lopartialKey
    Par jeje.r dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/12/2022, 10h56
  2. Requête absente pour fusion avec Word
    Par stéphane_ais2 dans le forum Access
    Réponses: 5
    Dernier message: 05/12/2006, 15h08
  3. tooltip avec balise option
    Par pittacos dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/08/2005, 10h14
  4. [socket] Problème avec les options
    Par gangsoleil dans le forum Développement
    Réponses: 3
    Dernier message: 13/07/2005, 13h11
  5. Problème avec l'option -static de gcc
    Par lsdInside dans le forum Linux
    Réponses: 2
    Dernier message: 08/05/2004, 01h01

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