Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/09/2006, 23h12   #1
Invité de passage
 
Inscription : avril 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 7
Points : 2
Points : 2
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 :
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):

Citation:
Essai de texteEssai de titre:
alors que je voudrais:

Citation:
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.

@+
MadSquirrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 09h14   #2
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
bonjour

tu peux tester


Code :
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
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2006, 15h32   #3
Invité de passage
 
Inscription : avril 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 7
Points : 2
Points : 2
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+
MadSquirrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h49.


 
 
 
 
Partenaires

Hébergement Web