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] Création fichier Word par Access via VBA


Sujet :

VBA Word

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 7
    Par défaut [VBA] Création fichier Word par Access via VBA
    Bonjour,

    j'ai un petit problème pour ma création de fichier Word à partir d'Access via VBA.

    J'arrive bien à créer le fichier, à insérer un tableau (et les données qui vont avec - merci les FAQ VBA et VB de Developpez.com ), mais je bute sur une présentation optimale du simple texte à afficher.

    Mon objectif est d'arriver à écrire sur une même ligne un mot en gras, puis un ou quelques mots en caractères "normaux" (ni gras, ni italique).

    J'utilise le code suivant:
    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
    38
    39
    40
    41
    42
    43
    44
     
    Public Function TestWord()
    Dim wdApp As Word.Application, wdDoc As Word.Document, wdPar As Word.Paragraph
    Dim Texte As Word.Range, Titre As Word.Range
        ' Définition de Word
        Set wdApp = CreateObject("Word.Application")
        ' Ouverture d'un nouveau document
        Set wdDoc = wdApp.Documents.Add
     
    (...)
     
        Set wdPar = wdDoc.Paragraphs.Add
        Set Titre = wdPar.Range
        With Titre
            .Bold = True
            .Italic = False
            .Font.Name = "Arial"
            .Font.Size = "10"
            .ParagraphFormat.Alignment = wdAlignParagraphLeft
        End With
        Titre.Collapse ' Obliger l'insertion au niveau du curseur
        Titre.InsertBefore ("Essai de titre: ")
        Set Titre = Nothing
        Set Texte = wdPar.Range
        With Texte
            .Bold = False
            .Italic = False
            .Font.Name = "Arial"
            .Font.Size = "10"
            .ParagraphFormat.Alignment = wdAlignParagraphLeft
        End With
        Texte.Collapse
        Texte.InsertAfter ("Essai de texte")
        Set Texte = Nothing
        Set wdPar = Nothing    
     
    (...)
     
        ' Fermeture du document et de l'application Word
        wdDoc.SaveAs (CurrentProject.Path & "\test.doc")
        wdDoc.Close
        Set wdDoc = Nothing
        wdApp.Quit
        Set wdApp = Nothing
    Le résultat dans le fichier est (veuillez noter l'absence de gras):

    Essai de texteEssai de titre:
    alors que je voudrais:

    Essai de titre: Essai de texte
    NB: J'ai essayé la fonction TypeText(), mais il me manque une définition de variable (si ma mémoire est bonne ) sous Access.

    Je remercie d'avance l'âme charitable (ou les âmes charitables) qui m'apporteront des pistes pour solutionner mon problème.

    Merci.

    @+

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    tu peux tester


    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
        ' Définition de Word
        Set wdApp = CreateObject("Word.Application")
        ' Ouverture d'un nouveau document
        Set wdDoc = wdApp.Documents.Add
     
        Set wdPar = wdDoc.Paragraphs.Add
        wdPar.Range.ParagraphFormat.Alignment = _
            wdAlignParagraphLeft
     
        With wdApp.Selection
            .TypeText "Essai de titre: " & vbTab
            .Font.Bold = True
            .Font.Italic = False
            .Font.Name = "Arial"
            .Font.Size = "10"
     
            .TypeText "Essai de texte."
            .Font.Bold = False
            .Font.Italic = False
            .Font.Name = "Arial"
            .Font.Size = "10"
        End With
    '
    '...
    '


    michel

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Et merci pour ta réponse rapide. J'ai finalement opté pour la fonction InsertParagraphAfter qui me permet de rajouter simplement le texte que je souhaite là où je veux.

    Encore quelques soucis de mise en page, mais je devrais finir par y arriver.

    Je te tiens au courant, mais le problème est, je pense, presque "résolu".

    A+

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/08/2008, 13h36
  2. Réponses: 1
    Dernier message: 25/08/2008, 11h57
  3. Envoyer doc WORD dans le "corps" par mail via VBA
    Par shingo94 dans le forum VBA Access
    Réponses: 10
    Dernier message: 08/02/2008, 14h45
  4. [VBA] [ACCESS] Accès à une requete Access via VBA
    Par Yanmeunier dans le forum Access
    Réponses: 3
    Dernier message: 16/03/2006, 11h48
  5. Modifier password Access via VBA ???
    Par HookerSeven dans le forum Access
    Réponses: 4
    Dernier message: 19/02/2006, 23h48

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