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 Access Discussion :

Création et modification de document Word


Sujet :

VBA Access

Vue hybride

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Par défaut Création et modification de document Word
    Bonjour,

    Encore une fois loin d'Internet et sans moyen de déplacer mes codes (c'est chiant) j'ai un petit soucis.

    Je souhaite créer un document Word à partir d'un modèle (copie du modèle avec son nom final) et le compléter à partir d'informations issus de la base Access, puis le laisser modifier (en plusieurs fois si nécéssaire grâce à la possibilité d'ouvrir le document) par l'utilisateur.

    Celui-ci peut également modifier des informations dans un formulaire Access, informations inscrites sur le document Word à l'aide de laz méthode des signets lors de sa création.

    En utilisant encore les signets comme décrit (et en essayant les méthodes delete et select sans succès), je n'arrive qu'à ajouter du texte, pas le modifier...
    J'ai donc essayé avec les champs de pblipostage, sachant que je ne dois créer/modifier à chaque fois qu'un seul document.
    J'ai donc essayé ce code, adapté à ma base :
    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
    Sub MergeIt()
    Dim objWord As Word.Document
    Set objWord = GetObject("C:\Local Data\Access\Publipostage\Publipostage.doc", "Word.Document")
    ' Rend Word visible important puisque la fusion se fait à l'écran.
    objWord.Application.Visible = True
    ' Sélectionne .la base de données Comptoir comme source de données pour la fusion
    objWord.MailMerge.OpenDataSource _
    		Name:="C:\Local Data\Access\Publipostage\Comptoir.mdb", _
    		LinkToSource:=True, _
    		Connection:="TABLE Employés", _
    		SQLStatement:="SELECT * FROM [Employés]"
    ' Exécution de la fusion.
    objWord.MailMerge.Execute
    Set objWord = Nothing
     
    End Sub
    J'ai un message d'erreur m'indiquant "paramètre non facultatif".

    Si je me contente d'ouvrir le document Word, il m'est demandé d'ouvrir la base de donnée source. (en la choisissant dans un explorateur)

    Mes questions donc, et je m'excuse encore de ne pas pouvoir les étayer par du code :

    - est-il possible, en utilisant la méthode des signets, de modifier le texte, sachant que j'ai, au moment de la modification, accès aux données avant et après modif. (plusieurs txtbox associés à des colonnes d'une liste remplie avant toutes modifications)
    - sinon, de quel(s) artifice(s) user ?

    En vous remerciant d'avance,

    Wulfram

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Par défaut
    Après une nouvelle recherche sur le sujet, je suis tombé là-dessus qui me fais me poser des questions :

    Quelques explications :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wdapp.ActiveDocument.Bookmarks("code").Range.Text = code.Value
    Dans cet exemple, nous avons utilisé la propriété Text de l'objet Range pour mettre à jour les données voulues dans le signet. Si vous souhaitez ajouter ces données à des données déjà existantes dans le signet, vous pouvez vous intéresser aux méthodes InsertBefore et InsertAfter.
    Cela signifie-t-il que le code quoter est sensé modifier le texte du signet ? Si oui, pour quelle(s) version(s) ?

    Car dans mon cas, avec Access2007 et Word2000, chaque fois que cette ligne de code est exécuté, le texte à la place du signet s'allonge, en "mode" InsertBefore d'après ce que je crois comprendre du texte, à savoir que la ligne de code quotée ci-dessus assigne une valeur au texte affiché là où est placé le signet, alors qu'avant cette lecture à la fois enrichissante et destabilisante, je pensais qu'il ajoutait du texte à l'endroit du signet. (d'après retour d'expérience)

    N'ayant pas Access où j'ai Internet, c'est un peu compliqué, mais je retourn me pencher sur mes soucis.

    Merci à vous,
    wulfram

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Le problème avec les signets, c'est que si ils contiennent du texte, lorsque l'on utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oDoc.Bookmarks(1).Range.Text = "Mon Texte"
    Le texte remplace le signet et le signet est écrasé.

    Si ton signet est simplement utilisé en tant que point d'insertion, c'est à dire un signet vide, le texte est ajouté juste derrière et le signet n'est pas supprimé.

    Jette un oeil à cette discussion http://www.developpez.net/forums/d48...truire-signet/

    La méthode Merge ne permet pas de modifier ton document une fois la fusion effectuée.

    A toi de voir.
    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. Apache POI - HWPF création de document word basé sur template
    Par *alexandre* dans le forum Documents
    Réponses: 8
    Dernier message: 26/02/2010, 11h03
  2. Création d'un document Word à partir d'Access
    Par schneiderj dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/10/2008, 17h52
  3. [OpenOffice][Texte] Modification d'un document word avec OpenOffice.
    Par maxlegrand dans le forum OpenOffice & LibreOffice
    Réponses: 3
    Dernier message: 16/11/2007, 17h54
  4. Création d'un document Word
    Par CleeM dans le forum Delphi
    Réponses: 13
    Dernier message: 27/06/2007, 12h26
  5. Création de documents word
    Par antiseche dans le forum C++
    Réponses: 3
    Dernier message: 23/06/2006, 15h34

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