begin process at 2010 02 10 14:28:01
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > PILOTAGE DE WORD PAR VB

PILOTAGE DE WORD PAR VB


 Information sur la source

Note :
9,33 / 10 - par 6 personnes
9,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Niveau :Débutant Date de création :19/11/2002 Date de mise à jour :06/06/2003 19:42:50 Vu :23 565

Auteur : Papy440

Ecrire un message privé
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Permet par du code ActiveX de piloter totalement Word 97 ou 6.0.

Source

  • 'Enonciation des variables
  • Dim docword As New Word.Application
  • Private Sub Command1_Click()
  • 'ouvre Word
  • Set docword = CreateObject("word.application")
  • 'True pour word visible et false pour le mettre en arrière plan
  • docword.Visible = True
  • docword.DisplayAlerts = False 'évite les erreurs de traitement
  • docword.Documents.Add 'ajoute un document vierge
  • 'on va écrire
  • docword.Selection.TypeText Text:="Comment piloter Word97"
  • 'faire un tabulation
  • docword.Selection.TypeText Text:=vbTab
  • 'revenir à la ligne
  • docword.Selection.TypeParagraph
  • 'sauter une ligne
  • docword.Selection.TypeParagraph
  • docword.Selection.TypeParagraph
  • 'zoomer
  • docword.ActiveWindow.ActivePane.View.Zoom.Percentage = 100
  • 'mise en forme
  • 'ATTENTION un petit conseil mes petits amis, c'est de d'abord mettre le format
  • 'avant de d'insérer le texte donc si vous avez bien compris vous faites :
  • 'docword.selection.paragraphformat.alignement = wdalignparagraphcenter
  • 'docword.selection.typetext text:="blablabla"
  • 'centré
  • docword.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
  • 'aligné à gauche
  • docword.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
  • 'justifié
  • docword.Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
  • 'aligné à droite
  • docword.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
  • 'mettre le texte en souligné
  • If docword.Selection.Font.Underline = wdUnderlineNone Then
  • docword.Selection.Font.Underline = wdUnderlineSingle
  • Else
  • docword.Selection.Font.Underline = wdUnderlineNone
  • End If
  • 'changer la taille de la police
  • docword.Selection.Font.Size = xx 'xx est une valeur numérique
  • 'changer la police
  • docword.Selection.Font.Name = "Arial"
  • 'mettre en gras
  • docword.Selection.Font.Bold = wdToggle
  • 'mettre en italique
  • docword.Selection.Font.Italic = wdToggle
  • 'souligner le texte
  • If docword.Selection.Font.Underline = wdUnderlineNone Then
  • docword.Selection.Font.Underline = wdUnderlineSingle
  • Else
  • docword.Selection.Font.Underline = wdUnderlineNone
  • End If
  • 'changer la couleur de la police
  • docword.Selection.Font.ColorIndex = wdRed 'ici en rouge
  • docword.Selection.Font.ColorIndex = wdAuto 'ici en couleur automatique
  • 'changer la couleur de fond du document
  • docword.ActiveDocument.Background.Fill.ForeColor.RGB = RGB(xxx, xxx, xxx)
  • 'où xxx est une valeur comprise en 0 et 255 (256 couleurs)
  • docword.ActiveDocument.Background.Fill.Visible = msoTrue
  • docword.ActiveDocument.Background.Fill.Solid
  • 'INSERER UN OBJET
  • 'insérer une image à partir du fichier
  • docword.Selection.InlineShapes.AddPicture FileName:="C:\cool.bmp", _
  • LinkToFile:=False, SaveWithDocument:=True
  • 'insérer un graphique type EXCEL
  • docword.ActiveDocument.Shapes.AddOLEObject Anchor:=Selection.Range, _
  • ClassType:="MSGraph.Chart.8", LinkToFile:=False, DisplayAsIcon:=False
  • 'insérer un graphique à partir d'un fichier EXCEL existant
  • docword.ActiveDocument.Shapes.AddOLEObject ClassType:= _
  • "MSGraph.Chart.8", FileName:="c:\cool.xls", LinkToFile:=False, _
  • DisplayAsIcon:=False, Left:=xxx, Top:=xxx 'xxx est une valeur numérique
  • 'linktofile:=True permet d'ouvrir le fichier EXCEL lorsque vous double-cliquez sur
  • 'le graphique.
  • 'left, top, ainsi que height et width définisse la position et la taille du graph
  • 'insérer un WORDART
  • docword.ActiveDocument.Shapes.AddTextEffect(msoTextEffect28, "COOL", _
  • "Impact", 36#, msoFalse, msoFalse, 261.35, 157.5).Select
  • 'insérer un tableau
  • docword.ActiveDocument.Tables.Add Range:=Selection.Range, _
  • NumRows:=2, NumColumns:=2
  • 'pour écrire dans le tableau utiliser le typetext à la suite
  • 'de cette fonction. Pour se déplacer, utiliser :
  • docword.Selection.MoveRight Unit:=wdCell
  • docword.Selection.MoveUp Unit:=wdLine, Count:=1
  • docword.Selection.MoveDown Unit:=wdLine, Count:=1
  • 'insérer un lien hypertexte
  • docword.ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
  • "http://www.cool.com/", SubAddress:=""
  • 'effacer l'objet insérer
  • docword.Selection.ShapeRange.Delete
  • 'insérer la date
  • docword.Selection.InsertDateTime DateTimeFormat:="jjjj j MMMM aaaa", _
  • InsertAsField:=False
  • 'insérer un signet
  • With docword.ActiveDocument.Bookmarks
  • .Add Range:=Selection.Range, Name:="cool"
  • .DefaultSorting = wdSortByLocation
  • 'ou = wdsortbyname -> indexer par nom
  • .ShowHidden = False
  • End With
  • 'enregistrer le document sous cool.doc
  • docword.ActiveDocument.SaveAs FileName:="c:\cool.doc"
  • 'quitter word
  • docword.Application.Quit
  • End Sub
'Enonciation des variables
Dim docword As New Word.Application

Private Sub Command1_Click()

'ouvre Word
Set docword = CreateObject("word.application")

'True pour word visible et false pour le mettre en arrière plan
    docword.Visible = True

    docword.DisplayAlerts = False   'évite les erreurs de traitement
    docword.Documents.Add 'ajoute un document vierge

'on va écrire
    docword.Selection.TypeText Text:="Comment piloter Word97"

'faire un tabulation
    docword.Selection.TypeText Text:=vbTab
    
'revenir à la ligne
    docword.Selection.TypeParagraph
'sauter une ligne
    docword.Selection.TypeParagraph
    docword.Selection.TypeParagraph
    
'zoomer
    docword.ActiveWindow.ActivePane.View.Zoom.Percentage = 100
    
'mise en forme
'ATTENTION un petit conseil mes petits amis, c'est de d'abord mettre le format
'avant de d'insérer le texte donc si vous avez bien compris vous faites :
'docword.selection.paragraphformat.alignement = wdalignparagraphcenter
'docword.selection.typetext text:="blablabla"

'centré
    docword.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
'aligné à gauche
    docword.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
'justifié
    docword.Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
'aligné à droite
    docword.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight

'mettre le texte en souligné
    If docword.Selection.Font.Underline = wdUnderlineNone Then
        docword.Selection.Font.Underline = wdUnderlineSingle
    Else
        docword.Selection.Font.Underline = wdUnderlineNone
    End If
    
'changer la taille de la police
    docword.Selection.Font.Size = xx 'xx est une valeur numérique
    
'changer la police
    docword.Selection.Font.Name = "Arial"

'mettre en gras
    docword.Selection.Font.Bold = wdToggle
 
'mettre en italique
    docword.Selection.Font.Italic = wdToggle

'souligner le texte
    If docword.Selection.Font.Underline = wdUnderlineNone Then
        docword.Selection.Font.Underline = wdUnderlineSingle
    Else
        docword.Selection.Font.Underline = wdUnderlineNone
    End If

'changer la couleur de la police
    docword.Selection.Font.ColorIndex = wdRed 'ici en rouge
    docword.Selection.Font.ColorIndex = wdAuto 'ici en couleur automatique
    
'changer la couleur de fond du document
    docword.ActiveDocument.Background.Fill.ForeColor.RGB = RGB(xxx, xxx, xxx)
    'où xxx est une valeur comprise en 0 et 255 (256 couleurs)
    docword.ActiveDocument.Background.Fill.Visible = msoTrue
    docword.ActiveDocument.Background.Fill.Solid

'INSERER UN OBJET
'insérer une image à partir du fichier
    docword.Selection.InlineShapes.AddPicture FileName:="C:\cool.bmp", _
        LinkToFile:=False, SaveWithDocument:=True

'insérer un graphique type EXCEL
    docword.ActiveDocument.Shapes.AddOLEObject Anchor:=Selection.Range, _
        ClassType:="MSGraph.Chart.8", LinkToFile:=False, DisplayAsIcon:=False
'insérer un graphique à partir d'un fichier EXCEL existant
    docword.ActiveDocument.Shapes.AddOLEObject ClassType:= _
        "MSGraph.Chart.8", FileName:="c:\cool.xls", LinkToFile:=False, _
        DisplayAsIcon:=False, Left:=xxx, Top:=xxx 'xxx est une valeur numérique
'linktofile:=True permet d'ouvrir le fichier EXCEL lorsque vous double-cliquez sur
'le graphique.
'left, top, ainsi que height et width définisse la position et la taille du graph

'insérer un WORDART
    docword.ActiveDocument.Shapes.AddTextEffect(msoTextEffect28, "COOL", _
        "Impact", 36#, msoFalse, msoFalse, 261.35, 157.5).Select

'insérer un tableau
    docword.ActiveDocument.Tables.Add Range:=Selection.Range, _
    NumRows:=2, NumColumns:=2
    'pour écrire dans le tableau utiliser le typetext à la suite
    'de cette fonction. Pour se déplacer, utiliser :
    docword.Selection.MoveRight Unit:=wdCell
    docword.Selection.MoveUp Unit:=wdLine, Count:=1
    docword.Selection.MoveDown Unit:=wdLine, Count:=1
    
'insérer un lien hypertexte
    docword.ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
        "http://www.cool.com/", SubAddress:=""
        
'effacer l'objet insérer
    docword.Selection.ShapeRange.Delete
    
'insérer la date
    docword.Selection.InsertDateTime DateTimeFormat:="jjjj j MMMM aaaa", _
        InsertAsField:=False
    
'insérer un signet
    With docword.ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:="cool"
        .DefaultSorting = wdSortByLocation
                            'ou = wdsortbyname -> indexer par nom
        .ShowHidden = False
    End With
    
'enregistrer le document sous cool.doc
    docword.ActiveDocument.SaveAs FileName:="c:\cool.doc"

'quitter word
    docword.Application.Quit

End Sub 

 Conclusion

Avant de taper votre code, assurer vous que les références suivantes sont cochées sous votre VB :
- Microsoft Office 8.0 object library
- Microsoft Word 8.0 object library
Ce code a été réalisé sous VB 6.0 Professionnal et sous Windows ME.


 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) GESTION DE PARC AUTOMOBILE AVEC SÉRIALISATION par guyr07
Source avec Zip Source avec une capture Source .NET (Dotnet) FICHIERS_CACHÉS_LECTURE_SEULE par Le Pivert
Source avec Zip Source avec une capture CHANGEUR D'ICONES par djgab21
Source .NET (Dotnet) DIRECTDISKACCESS par XelectroX
Source avec Zip Source avec une capture UTILITAIRE WAV, MID ET MP3 par SnkVrt

Commentaires et avis

Commentaire de Warny le 20/11/2002 09:10:04

Bon code, mais n'oubliez surtout pas qe piloter word c'est TRES lent,
Il faut donc toujours penser à faire le MINIMUM d'opérations possibles.
Si vous activez les révisions sur vote document, les appels au texte seront encore plus ralentis.
Pour inserer du texte, vous pouvez passer par le clipboard, si vous voulez qu'il soit formatté, clipboardez du html.

Commentaire de champ le 20/01/2003 15:18:35

Ca me dit "permission refusée"  à la ligne :

Set docword = CreateObject("word.application")

Commentaire de Papy440 le 20/01/2003 20:34:40

Est-tu sûr d'avoir ajouter les références :
- Microsoft Word 8.0 object Library
- Microsoft Office 8.0 object Library
Pour les ajouter, tu cliques sur "projet" , "Références".
Là tu séléctionnes les références que tu veux ajouter à ton projet.

Good Luck

Commentaire de xhill le 18/11/2003 18:00:41

salut !
Est ce que tu peux, en mettant ton objet Word caché, réexécuter ton code une deuxieme fois ( c'est a dire relancer word ) sans quitter ton application ?

Je suis en windows 2k et office 97 et il parait qu'il y a des problèmes pour cette version (office)

L'objet word au moment de la seconde execution du code (je rappelle sans avoir quitter l'appli) me met comme erreur : "Le server distant n'existe plus ou a été supprimé..."

En fait, word croit a chaque fois qu'il s'agit du même document, alors que pas du tout !

Aurais tu été confronté a ce problème ? si oui, l'as tu résolu ? Si oui, comment ?

Commentaire de djoul1001 le 24/05/2004 15:16:18

salut papy440,
Je cherche à réaliser du publipostage (piloté depuis Bv .Net). Je dispose d'une base de données, ou d'une source de données xml.
J'ai besoin d'ajouter au document Word des champs de fusion.
peut-être sais tu comment t'y prendre .
Merci

Commentaire de Superflo le 22/07/2004 16:55:29

Pour xHill : http://support.microsoft.com/default.aspx?scid=kb;FR;189618

Commentaire de ottou le 17/09/2004 10:02:12

Salut les gars!!!
J'ai eu à tester votre code. Sous Windows XP, je n'ai pas de problème.
Mais sous windows 98, et 2000, certains pb apparaisse au niveau de
createobject("word.application").
Plus précisément, "Erreur 458, Variable utilisant un type non géré par Visual Basic"

Commentaire de kokise le 22/11/2005 11:13:21

Saluuuuuttt les gars,
Est ce qu'il y a un moyen de sauter la page qui est rempli est d'enregistrer dans la page suivante qui est bien sur vide dans un document.
Merci d'avance.

Commentaire de zeOffspring le 08/06/2006 10:16:00

c'est con mais moi j'aimerai juste récupérer le nombre de pages du document actif. j'arrive pas à trouver. quelqu'un sait ?

Commentaire de into le 08/03/2007 11:04:24

Salut moi je souhaite juste récupérer le texte du document word pour l'afficher!!
qui sait comment faire?
merci

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales