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

VBA Word Discussion :

Probleme d'enregistrement à partir d'une macro [WD-2003]


Sujet :

VBA Word

  1. #1
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut Probleme d'enregistrement à partir d'une macro


    J'ai un problème de "publipostage" :

    Sur Word, j'effectue un enregistrement d'un document à partir d'une macro.
    Dans le doc, il y a des champs de données situés sur une BD ACCESS.

    Voici le code de ma macro :
    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
    Sub MonPubli()
    Dim myDoc As Document
    Dim stName As String
    Dim iPrec As Integer
    Set myDoc = ActiveDocument
    Dim stRep As String
     
    With myDoc.MailMerge
        .DataSource.ActiveRecord = wdFirstRecord
        While iPrec < .DataSource.ActiveRecord
            .DataSource.FirstRecord = .DataSource.ActiveRecord
            .DataSource.LastRecord = .DataSource.ActiveRecord
            .Destination = wdSendToNewDocument
            .Execute
    stName = "D:\Company\PM\Sec\" & .DataSource.DataFields(1) & "\FAX.doc"
    Debug.Print stName
    '-------------------------------------------------------------------------------
    '----------------Vérifie si le fichier existe déjà -----------------------------
    If Dir(stName) <> "" Then
    MsgBox ("Le Document Existe Déjà, Faire Enregistrer Sous et le Renommer")
    Exit Sub
    Else
    End If
    '-------------------------------------------------------------------------------
    '-----------------Vérifie si le Dossier existe déjà-----------------------------
    stRep = .DataSource.DataFields(1)
    Dim Chemin As String
                'Vérifie si le répertoire existe.
        If Dir("D:\Company \PM\Sec", vbDirectory + vbHidden) <> "" Then
                'Vérifie que le dossier à créer n'existe pas déjà dans le répertoire
            If Dir("D:\Company \PM\Sec" & "\" & stRep, vbDirectory + vbHidden) = "" Then _
                MkDir "D:\Company \PM\Sec" & "\" & stRep
        End If
    '---------------------------------------------------------------------------------------------------------------
            ActiveDocument.SaveAs stName
            ActiveDocument.PrintOut
            myDoc.PrintOut
            ActiveDocument.Close False
            iPrec = .DataSource.ActiveRecord
     
        Wend
    End With
    myDoc.Parent.Quit False
    End Sub
    Normalement, ça m'enregistre un fichier doc correspondant au document initial

    Mais mon probléme est que dans le cas present, sur le fichier doc enregistré, j'ai :
    Word a trouvé des champs verrouillés pendant la mise à jour. Word ne peut pas mettre à jour des champs verrouillés.
    Je n'arrive pas à trouver d'où vient le probleme : dans le code, les propriétés du document, les options du document...


    Je sais pas

  2. #2
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut
    Désolé pour le dérangement

    J'ai trouvé la solution :

    En fait sur mon courrier, j'avais de champs liés a une BD ACCESS qui marchaient bien (jusque là pas de probléme).

    Toutefois, suite au message signifiant un probléme de champs vérouillés, j'ai cherché comment les deverouiller.

    Pour déverrouiller des champs, l'aide Office préconisait de sélectionner les champs et de faire Ctrl + Maj + F11 se que j'ai fait mais sans résultat (j'ai peut être mal fait).
    J'ai donc fait la même chose en sélectionnant tout le doc, fermer le doc en enregistrant, rouvert le doc et sa me marquait : Erreur ! Aucun champ de fusion n'a été trouvé dans les enregistrements d'en-têtes de la source de données. au niveau de "Madame, Monsieur," je sais pas pourquoi car se n'été pas un champs a l'origine, car je l'ai tapé à la main lors de la création du doc ()
    Donc j'ai réécris "Madame, Monsieur," réenregistré et sa marche Nikel

    quand même aux personnes qui ont cherché

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/10/2008, 23h29
  2. Enregistrement d'un fichier Word à partir d'une macro excel
    Par GTBouli dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/04/2008, 12h19
  3. Comment Executer Un Module A Partir D'une Macro
    Par lea022 dans le forum Access
    Réponses: 8
    Dernier message: 23/06/2006, 13h17
  4. Réponses: 5
    Dernier message: 05/04/2006, 12h23
  5. [VBA-E]Imprimer à partir d'une macro
    Par benoue dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/03/2006, 10h09

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