Génération automatique de documents Office


Retour à la page développeur

Mots-clefs : office automation, VBA, Visual Basic, Word, génération document, DOT, signets, ajout de lignes, liens HTML.

Problématique :

Sous Access, je conseillerai d'utiliser en premier lieu les états qui disposent une méthode pour enregistrer au format Word. Ceci dit, on se retrouve vite limité avec ces rapports (surtout quand on veut que la présentation varie suivant les valeurs des indicateurs calculés).

Sous Excel, on a pas d'autre choix - on peut penser à exporter les graphes comme des GIFs (pratique pour une diffusion intranet).

Cette routine que j'ai fait permet de générer un fichier DOC à partir d'un modèle de fichier DOT et d'une base de données (Access) par exemple. L'avantage du DOT est que présentation est découplée des données qui sont collées dedans. C'est très pratique pour que l'utilisateur final soit autonome sur le rendu des documents.

Principe :

dans le modèle de fichier DOT, on définit les tableau et des signets dans les zones de textes. La macro va positionner le curseur sur les différents signets, coller le texte, ouvrir les tables, ajouter des lignes (qui reprennent le même formattage que celles déjà présentes), puis sauvegarder le tout.

On peut choisir d'utiliser des requêtes Access pour obtenir les donner à coller, au lieu d'écrire le SQL à la main. Cela présente l'avantage de rendre le code plus facilement maintenable et centralise les chaînes SQL.

Code :

Module access2word dans la base de données ci jointe. L'exemple génère 3 fichiers (2 WORD et 1 HTML) qui sont générés à partir de trois enregistrements d'une table Access (évidemment ce pourrait être le résultat d'une quéry au lieu d'une table qui sert de source de données). Lancer la Sub Lancezmoi() pour générer les 3 fichiers.

Exemple :

Base de données Access avec macro de génération + fichier DOT.