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

IHM Discussion :

Macro commande pour envoyer un formulaire sur Word [AC-2010]


Sujet :

IHM

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Par défaut Macro commande pour envoyer un formulaire sur Word
    Bonjour tout le monde !!!!!

    J'ai sur mon formulaire j'ai créer un bouton et j'aimerais avoir une macro commande afin que le formulaire choisi se transfère directement sur Word (système de publipostage)

    Je sais qu'il est possible de le faire (il y a un onglet spécial sur Access) mais je souhaiterais que ce soit plus automatiser et plus direct avec le bouton et la macro !!
    Merci beaucoup.

  2. #2
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    Tu veux dire que tu veux transférer les données d'un enregistrement, par exemple prénom, nom, adresse, etc., vers un document Word ?

    Si oui, un exemple avec deux champs contenant le nom et le prénom.

    D'abord, référencer Word dans ton projet. Dans l'éditeur VBA, menu Outils ==> Références, tu cherches Microsoft Word 12.0 Object Library et tu la coches pour l'ajouter à ton projet.

    Ensuite, tu prépares un document Word avec divers signets : Nom, Prénom, etc...

    Dans ton formulaire Access, diverses zones de textes avec comme nom, strNom, strPrenom, etc...

    Sur ton formulaire, un bouton cmdPublipostage et dans l'événement Sur clic, ce début de 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
    Private Sub cmdPublipostage_Click()()
     
        'En cas d'erreur, on n'en tient pas compte
        On Error Resume Next
     
        'Déclaration d'une instance Word
        Dim W_App As New Word.Application
     
        'Instance Word
        With W_App
     
            'Word est visible à l'écran ou non
            .Visible = True
     
            'Ouvre le document Word avec les signets
            .Documents.Open ("C:\....\NomDeTonDocument.doc")
     
            'Tranfert du nom : strNom ==> Signet Nom
            .ActiveDocument.Bookmarks("Nom").Select
            .Selection.Text = Me.strNom
     
             'Tranfert du nom : strPrenom ==> Signet Prénom
            .ActiveDocument.Bookmarks("Prenom").Select
            .Selection.Text = Me.strPrenom
     
            'Sauvegarde du nouveau document
            .ActiveDocument.SaveAs ("Nouveau document.Doc")
     
            'Fermeture de Word
            .Quit
     
        End With
     
        'Libération de l'objet Word         
        Set W_App = Nothing
     
    End Sub
    C'est un code pour démarrer. Plusieurs options sont possibles.

    • créer le document à partir d'un modèle Word ;
    • imprimer le document ;
    • spécifer le répertoire de sauvegarde ;
    • afficher la boîte de dialogue Enregistrer sous... de Word ;
    • etc.


    Tu peux déjà faire un essai avec ça et tu pourras le compléter/modifier selon tes besoins.

    Domi2

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Par défaut
    bonjour !!!!

    j'ai essayé le code mais ça ne fonctionne pas (je m'y suis probablement mal prise) !

    Alors j'ai modifier la première ligne car ça ne lui plaisait pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Private Sub Commande68_Click()
    mais lorsque je clique sur le bouton, un message d'erreur apparait : "erreur de compilation type défini par l'utilisateur non défini" et le code surligné est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Déclaration d'une instance Word
    Dim W_App As New Word.Application!
    j'ai probablement raté une étape

    dois-je envoyer mon fichier ?!

    merci beaucoup

  4. #4
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    Pour la première ligne, c'est normal, le nom de ton bouton est différent (Commande68 et non cmdPublipostage).

    Il faut faire attention avec les noms que tu utilises pour tes objets, si tu les laisses sans signification réelle, ça devient problématique à la longue pour maintenir ton code. Un tuto à lire, Descriptif des conventions typographiques du code Visual Basic.

    Pour ton deuxième problème :

    D'abord, référencer Word dans ton projet. Dans l'éditeur VBA, menu Outils ==> Références, tu cherches Microsoft Word 12.0 Object Library et tu la coches pour l'ajouter à ton projet.
    Domi2

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Par défaut
    En effet, ce premier problème à été résolu (merci ), il me reste celui concernant le problème des "str" (enfin je pense que c'est le problème) !


    je vais essayer de comprendre le "tuto"

    merci beaucoup

  6. #6
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonsoir,

    Si tu fais références à ceci par exemple, strNom, c'est le nom donné à une zone de texte du formulaire Access qui contient une donnée à transférer vers Word.

    Dans le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'Tranfert du nom : strNom ==> Signet Nom
    .ActiveDocument.Bookmarks("Nom").Select
    .Selection.Text = Me.strNom
    "Me" fait référence au formulaire, le code étant contenu dans le module de classe de celui-ci. Et strNom à la valeur du contenu de la zone de texte strNom.

    En espérant que cela t'aide.

    Domi2

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

Discussions similaires

  1. [XL-2007] Macro pour exporter des données sur WORD vers Excel (version 2007)
    Par krokos55 dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 31/10/2012, 13h10
  2. Réponses: 2
    Dernier message: 06/01/2011, 16h35
  3. Réponses: 6
    Dernier message: 23/04/2009, 16h07
  4. Réponses: 3
    Dernier message: 23/04/2009, 12h44
  5. Réponses: 4
    Dernier message: 19/03/2009, 09h57

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