IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ VBA

FAQ VBAConsultez toutes les FAQ

Nombre d'auteurs : 10, nombre de questions : 133, dernière mise à jour : 15 juin 2021 

 
OuvrirSommaireWordDocument

Trois méthodes sont utilisables Ouvrir un document existant

 
Sélectionnez
Set objDoc = Application.Documents.Open("c:\tutoriel\tuto.doc")

Ouvrir un nouveau document (basé sur le modèle normal)

 
Sélectionnez
Set objDoc = Application.Documents.Add

Ouvrir un document basé sur un autre modèle

 
Sélectionnez
Set objDoc = Application.Documents.Add(Template:="C:\Program Files\Microsoft Office\Templates\Memos\Professional Memo.dot")
Créé le 3 février 2004  par bidou

On peut accéder aux propriétés par la collection BuiltInDocumentProperties de l'objet document

 
Sélectionnez
Dim objDoc As Word.Document, msg As String

Set objDoc = Application.Documents.Open("d:\tuto.doc")
msg = "Titre : " & objDoc.BuiltInDocumentProperties(wdPropertyTitle) & vbCrLf
msg = msg & "Auteur : " & objDoc.BuiltInDocumentProperties(wdPropertyAuthor) & vbCrLf
msg = msg & "Commentaire : " & objDoc.BuiltInDocumentProperties(wdPropertyComments) & vbCrLf
MsgBox msgDim objDoc As Word.Document, msg As String

Set objDoc = Application.Documents.Open("d:\tuto.doc")
msg = "Titre : " & objDoc.BuiltInDocumentProperties(wdPropertyTitle) & vbCrLf
msg = msg & "Auteur : " & objDoc.BuiltInDocumentProperties(wdPropertyAuthor) & vbCrLf
msg = msg & "Commentaire : " & objDoc.BuiltInDocumentProperties(wdPropertyComments) & vbCrLf
MsgBox msg
Créé le 4 février 2004  par bidou

Oui, il faut par contre demander le calcul pour une statistique

 
Sélectionnez
Dim objDoc As Word.Document, msg As String

Set objDoc = Application.Documents.Open("d:\tuto.doc")
MsgBox "Le documents contient " & objDoc.ComputeStatistics(wdStatisticPages) & " pages et " & objDoc.ComputeStatistics(wdStatisticWords) & " mots"

Vous pouvez obtenir les statistiques pour

  • wdStatisticCharacters : nombre de caractères
  • wdStatisticCharactersWithSpaces : nombre de caractères avec les espaces
  • wdStatisticLines : nombre de lignes
  • wdStatisticPages : nombre de pages
  • wdStatisticParagraphs : nombre de paragraphes (retour chariot)
  • wdStatisticWords : nombre de mots
Créé le 4 février 2004  par bidou

C'est normal, elle n'existe pas. Pour gérer un document invisible dans word 97, on utilise :

 
Sélectionnez
Set objDoc = GetObject("d:\user\tuto.doc")
Créé le 4 février 2004  par bidou

Elles sont de plusieurs sortes. Mot de passe d'accès

 
Sélectionnez
objDoc.Password= "passe"

Ce code doit être passé dans la méthode open pour ouvrir le document par le code. Protection spécifique

 
Sélectionnez
ActiveDocument.Protect Password:="monpasse", NoReset:=False, Type:=wdAllowOnlyComments

Dans ce cas, seuls les commentaires sont autorisés. Pour ôter la protection, utiliser le type wdNoProtection ou la méthode UnProtect

Créé le 4 février 2004  par bidou

On utilise pour cela l'objet PageSetup de document. Par exemple

 
Sélectionnez
With ActiveDocument.PageSetup
        .Orientation = wdOrientLandscape
        .FirstPageTray = wdPrinterDefaultBin
        .OtherPagesTray = wdPrinterDefaultBin
        .SectionStart = wdSectionNewPage
        .OddAndEvenPagesHeaderFooter = True
        .DifferentFirstPageHeaderFooter = True
        .VerticalAlignment = wdAlignVerticalTop
        .SuppressEndnotes = False
        .MirrorMargins = True
End With
Créé le 4 février 2004  par bidou

On utilise la méthode Add de la collection TableOfContents Set objDoc = Application.Documents.Open("D:\tuto.doc")

 
Sélectionnez
objDoc.TablesOfContents.Add _
    Range:=objDoc.Range(objDoc.Paragraphs(2).Range.Start, objDoc.Paragraphs(2).Range.Start), _
    UseHeadingStyles:=True, _
    LowerHeadingLevel:=4, _
    UpperHeadingLevel:=1

Faite très attention à ne pas sélectionner de texte car celui-ci serait écrasé.

Créé le 4 février 2004  par bidou

Le code suivant crée l'en-tête, centre le texte et le met en gras

 
Sélectionnez
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text = "En-tête"
With ActiveDocument.StoryRanges(wdPrimaryHeaderStory)
    .Bold = True
    .ParagraphFormat.Alignment = wdAlignParagraphCenter
End With
Créé le 6 février 2004  par bidou

On utlilise la méthode Add de la collection Hyperlinks

 
Sélectionnez
Dim objDoc As Document

Set objDoc = Application.Documents.Open("D:\tuto.doc")
objDoc.Hyperlinks.Add objDoc.Paragraphs(1).Range.Words(objDoc.Paragraphs(1).Range.Words.Count), "d:\pilo.doc"
Créé le 4 février 2004  par bidou

Sentences est une collection renvoyant les "phrases" de son conteneur (document, paragraphe ...). Par phrase on entend tout ce qui est compris entre des points et/ou des retours chariots.

 
Sélectionnez
Notez que c'est donc différent des lignes word
Dim objDoc As Document, Phrase As Range

Set objDoc = Application.Documents.Open("D:\tuto.doc")
MsgBox objDoc.Sentences.Count & vbCrLf & objDoc.BuiltInDocumentProperties(wdPropertyLines)
For Each Phrase In objDoc.Sentences
    Phrase.Select
    MsgBox "suite"
Next
Créé le 4 février 2004  par bidou

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.