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 :

[VBA-W]publipostage word


Sujet :

VBA Word

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 42
    Points : 26
    Points
    26
    Par défaut [VBA-W]publipostage word
    Bonjour,
    Je cherche à faire une lettre type qui utilise une requête imbriquée.
    Pour chaque entreprise la lettre doit reprendre la liste des personnes stagiaires dans celle-ci en fonction d'un critère de date.
    Je sais faire la requête mais pas l'intégrer dans Word 2003.
    Est-ce possible ?
    Je vous remercie de vos réponses, bien que ce ne soit pas tout à fait l'endroit où poster une pareil question.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    VB ? VBA ? Si tu peux préciser... Quant à ta requête, que fait-elle ?
    A tout'

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 42
    Points : 26
    Points
    26
    Par défaut
    Je souhaite le faire en vba.
    Ma requete, elle liste toutes les entreprises qui ont un stagiaire dans leurs murs dans un premier temps et liste les noms et prénoms de chaque stagiaire.
    Le critère de tri est l'ordre alphabétique des noms des entreprises.
    Donc l'entreprise 1 puis stagiaire 1
    entreprise 2 puis stagiaire 2 et stagiaire 3 etc.
    Le problème c'est que le nombre de stagiares n'est pas fixe, il faudrait faire une itération j'imagine. Mais je ne vois pas du tout comment faire.
    Merci de la réponse.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    tu nous as toujours pas dis d'ou ta requête tiré ces données ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 42
    Points : 26
    Points
    26
    Par défaut
    La requete est dans un fichier access.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 42
    Points : 26
    Points
    26
    Par défaut
    nom de la base de données : stagiaire
    nom de la requete : ets_stagiaire
    liste des champs :
    ets_nom
    ets_adresse
    ets_cp
    ets_ville
    eleve_nom
    eleve_prenom

  7. #7
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    On va devoir te tirer les vers du nez jusqu'au dernier mot???

    Quelle version ta base Access?

    Si c'est 97 tu devras utiliser DAO, après, c'est ADO.

    fais des recherches sur l'un de ces mots clés dans le forum et dans le site (www.developpez.com).

    Jacma a écrit un tuto à ce sujet, tu devrais le trouver.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  8. #8
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Tiens, je suis bon prince, voici le lien:

    http://jacma.developpez.com/
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 42
    Points : 26
    Points
    26
    Par défaut
    Je suis désolé, mais je ne savais pas qu'il fallait ces informations :
    access 2003
    word 2003
    vba

    Merci pour le lien, je vais voir.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 42
    Points : 26
    Points
    26
    Par défaut
    J'ai regardé les tutoriaux qui sont très bien faits, mais j'ai toujours une petite question.
    Access je connais, la programmation de word non. J'ai compris les principes de la programmation vb.
    Maintenant, pour ma lettre type, je dois passer par une macro qui charge les données dans des recordsets hiérarchiques.
    Ensuite l'ajout des adresses des entreprises je ne vois pas trop comment faire non plus que sur l'ajout des noms des stagiaires.
    Une fois ce problème réglé, ce sera fait pour une lettre, mais comment itérer pour toutes les lettres.
    Je me rends bien compte que ce sont des questions qui vous semblent ridicules mais je ne vois pas bien comment les solutionner.
    Merci de votre patience.

  11. #11
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    J'ai compris les principes de la programmation vb.
    Bien ! C'est un bon début !
    Tu as par ailleurs le lien vers le bon tuto.
    Reviens avec un début de code en nous expliquant où tu rencontres une difficulté

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Le principe de fusion de document dans word est : Une base de données contenant les renseignements utiles à ta lettre type et le document type dans lequel sont placés des champs de fusion.

    Réaliser la liaison entre le document type et la base de données est réalisé ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
        ActiveDocument.MailMerge.OpenDataSource Name:= _
            "D:\xls\adresses diverses.xls", ConfirmConversions:=False, ReadOnly:= _
            False, LinkToSource:=True, Format:=wdOpenFormatAuto, Connection:= _
            "Feuille de calcul entière"
    Réalise la liaison entre une base de données Excel (ne l'ai jamais fait avec access)
    Pour Access, regarde la méthode OpenDataSource dans l'aide
    Dans la base de données, j'ai les champs Civilité, Prénom, Nom, adresse...etc
    Je suppose que tu souhaites placer l'adresse d'une personne sur ta lettre
    Mademoiselle Michèle Untelle
    5, avenue du Rosier
    75013 PARIS
    Pour faire ça, tu dois placer dans le document les champs de fusion aux endroits voulus.
    Ces champs ont pour référence le nom de champ de la base de données. Dans l'exemple, tu auras ça dans Word
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    "Civilité" "Prénom" "Nom" 
    "Adresse"
    "Code_Postal" "Ville"
    Généralement, l'insertion des champs se réalise manuellement, leur emplacement dépendant des termes de la lettre. Le code ne te servirait à rien sauf à t'inciter à réaliser une usine à gaz

    Par contre, lancer par macro la fusion une fois le document type réalisée ne pose pas de pb :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        With ActiveDocument.MailMerge
            .Destination = wdSendToNewDocument
            .Execute
        End With
    Créera autant de lettres que de noms existants dans ta base de données
    Mais tu peux définir des critères. Par exemple, si tu ne souhaites n'adresser une lettre qu'à Mademoiselle Michèle Untelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        ActiveDocument.MailMerge.DataSource.QueryString = _
            "SELECT * FROM D:\xls\adresses diverses.xls WHERE ((Nom = 'Untelle') AND (Prénom = 'Michèle'))" & ""
        With ActiveDocument.MailMerge
            .Destination = wdSendToNewDocument
            .Execute Pause:=True
        End With
    Te reste à l'adapter avec une base Access, ce que je ne sais pas faire
    Mais il y aura bien quelqu'un pour t'aider.

    A+

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 42
    Points : 26
    Points
    26
    Par défaut
    Merci pour tous ces renseignements, je vais m'y mettre sérieusement.
    Il me faudra un peu de temps.
    Je considère que ma question est résolue et ceci .
    SI j'ai d'autres problèmes, je créerai une autre discussion.
    Merci encore pour la cellérité dont vous avez fait tous preuve.
    Bonne journée.

Discussions similaires

  1. [XL-2010] Macro VBA+bouton+publipostage Word+Signet
    Par dany13 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 12/04/2012, 17h08
  2. création du code vba de publipostage vers word
    Par marrek209 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/11/2009, 12h01
  3. Réponses: 2
    Dernier message: 03/10/2007, 07h09
  4. [VBA-E-W]Publipostage Word Excel
    Par Yolak dans le forum VBA Word
    Réponses: 5
    Dernier message: 28/05/2007, 09h29
  5. Réponses: 2
    Dernier message: 07/06/2006, 09h50

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