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 :

Macro enregistrement modele NOVICE


Sujet :

VBA Word

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    dirigeant pme
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : dirigeant pme
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Macro enregistrement modele NOVICE
    Bonjour,

    Après plusieurs recherches, je me permet de poser une petite requete car ceci est ma dernière solution,.... (désespéré)

    J'explique ma situation, j'ai :

    - Fichier .mer
    - Fichier Cocktail1 avec macro 1
    - Fichier coktail2 avec macro 2

    Cocktail 1 macro 1
    J'ai un fichier .mer qui est la source d'une fusion d'un document word appelé cocktail1 ce fichier .mer est mis à jour par filemaker qui exporte qu'un seul enregistrement à la fois.
    Ensuite par filemaker, j'ouvre le docuement de référence Cocktail1 (qui affiche le contenu du.mer par des champs ) et là je souhaite créer une macro qui s'exécute dès l'ouverture du fichier et qui fusionne le document avec l'enregistrement contenu dans le .mer et ensuite enregistre directement le fichier selon un autre nom. coktail2(contenu dans les champs de fusion).

    Cocktail 2 macro 2
    Cependant Cocktail 2 lorsque je le réouvre ne doit pas réexécuter la macro 1, il ne doit contenir que la macro2 qui s'exécute selon l'utilisateur et qui permet de réenregistrer le document au meme format et un autre doc en pdf
    Ce fichier cocktail ne doit egalement plus garder des champs de publipostage et être relier au fichier .mer

    1) J'ai déjà essayer mais je m'y perd complètement, je ne sais pas qu'elle format de fichier doit avoir cocktail1 ? modèle? ou document?
    quelles format docx, docm,dotm? ensuite pour le cocktail 2? quelles format docm?
    2) Ensuite le placement des macros dans le projet je dois les mettre dans this document ou newmacros ?
    je me perd un peu entre les formats et placement de macro pour arriver à mon objectif. Si quelqu'un pourrait m'éclaircir ca serait vraiment sympa car c'est un peu l'aboutissement de tout un projet mené sur filemaker...et là je bloque sur word !!! (normal j'y connais RIEN)

    ci dessous mes codes de macros 1 et 2
    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
     
    Sub macro1()
     
    'doit s'exécuter à l'ouverture du document de référence cocktail et enregistrer selon contenu champs de fusion paragraph 3
    par contre la macro ne doit pas s'exécuter dans le nouveau document
     
    ' macro1
    '
    '
        ActiveDocument.MailMerge.MainDocumentType = wdNotAMergeDocument
        ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
        ActiveDocument.MailMerge.OpenDataSource Name:= _
         "C:\Users\Thomas\Desktop\BaseFT\base.mer", ConfirmConversions:=False, _
            ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False, _
            PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", _
            WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _
            Connection:="", SQLStatement:="", SQLStatement1:="", SubType:= _
            wdMergeSubTypeOther
        ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle
        Dim toto As String
        toto = ActiveDocument.Paragraphs(3).Range
        toto = Left(toto, (Len(toto) - 1))
        ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
        ActiveDocument.MailMerge.MainDocumentType = wdNotAMergeDocument
     
        ActiveDocument.SaveAs FileName:="C:\Users\Thomas\Desktop\BaseFT\Devis\" & toto & ".docm", FileFormat:=wdFormatXMLDocumentMacroEnabled, _
             LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
            :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
            SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
            False
     
          MsgBox "Fusion du document et sauvegarde réussie, une fois vos modifications apportées veuillez exécuter la 2ème macro"
    End Sub
    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
     
    Sub macro2()
    '
    doit s'exécuter juste par demande de l'utilisateur et doit être présente sur le nouveau document cocktail 2
    ' macro2
    '
            Dim toto As String
     
            toto = ActiveDocument.Name
            ActiveDocument.ExportAsFixedFormat OutputFileName:= _
            "C:\Users\Thomas\Desktop\BaseFT\Devis\" & toto & ".pdf", _
            ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
            wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
            Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
            CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
            BitmapMissingFonts:=True, UseISO19005_1:=False
            ActiveDocument.SaveAs FileName:="C:\Users\Thomas\Desktop\BaseFT\Devis\" & toto & ".docx", FileFormat:=wdFormatXMLDocument, _
             LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
            :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
            SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
            False
            MsgBox "Enregistrement terminé sous format Pdf"
            ActiveWindow.Close
            Application.Quit
    End Sub
    Merci de votre aide
    Thomas

  2. #2
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut
    Salut,

    Voici quelques infos, vu que tu poses beaucoup de questions en même temps.

    Pour les formats, le .docx est le format à utiliser aujourd'hui pour les documents word. Le .docm est l'équivalent, mais le document contient des macros. Le dotx est un modèle de document : il permet de créer de nouveaux docx avec certains "préformatages". Le dotm est un modèle qui contient des macros.

    Pour ta question sur l'emplacement de tes macros, tu peux utiliser le module "NewMacros", ou bien t'en créer un autre avec le nom de ton choix, toujours dans la partie "Modules". Si tu enregistres une macro avec l'enregistreur automatique, il faut savoir qu'elle est toujours ajoutée aux procédures du module "NewMacros".

    Tu n'utilises "ThisDocument" que si tu as besoin de déclencher du code évènementiel par rapport à ton document. Par exemple, tu parles de lancer une "macro" (parlons plutôt de procédures et de fonctions) à l'ouverture d'un document, donc tu placeras du code dans la fonction Document.Open sous ThisDocument.

    Voilà j'espère t'avoir aidé.

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    dirigeant pme
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : dirigeant pme
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut aife
    Comment faire alors pour que le document créé ne s ouvre pas en exécutant la macro 1 du modèle ?
    Si quelqu'un pouvait jeter un oeil a mes macro?
    Merci

  4. #4
    Membre actif
    Avatar de Golard
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 281
    Points : 289
    Points
    289
    Par défaut
    Si le document final ne doit pas contenir de macros, créé et enregistre le document en utilisant le modèle normal et non pas ton modèle en cours.

    Développement VBNet sous Visual Studio Community 2013 (environnement Windows 10)

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    dirigeant pme
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : dirigeant pme
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    quelqu'un pourrait regarder mes macros et me donnez leur avis,
    je suis un peu perdu pour l'endroit ou stocker la macro et le type de modèle ou document à utiliser?
    merci

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    J'ai un peu de mal à comprendre l'intérêt des macros dans ton cas.

    Un publipostage peut se faire sans utiliser de macro, c'est même le mode utilisé dans la majorité des cas.

    Tu crées ton modèle qui utilise ta source, il suffit que la source ait toujours le même nom et lors de l'ouverture, les champs seront mis à jour par fusion.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

Discussions similaires

  1. Macro enregistrement d'un document
    Par Border_xls dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/02/2008, 10h29
  2. Macro "enregistrer sous et mise à jour"
    Par Jonathan Raucy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/01/2008, 09h37
  3. Macro enregistrer sous
    Par lara008 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/08/2007, 14h15
  4. Réponses: 6
    Dernier message: 14/06/2007, 13h16
  5. une macro "enregistrer donnée en cours"
    Par copainvince dans le forum Access
    Réponses: 14
    Dernier message: 19/01/2007, 16h54

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