1. Introduction▲
Dans les articles précédents, nous avons découvert les bases du VBA.
Le dernier en date vous à proposé de minipuler l'Objet Application Word et les documents.
Cet article va vous apprendre à manipuler les paragraphes et les tableaux contenus dans vos documents .
2. Range et Selection▲
Avant d'aborder le contenu du document, nous allons voir deux objets : Range et Selection. Ces deux objets sont
fort semblables. L'objet Range représente une plage de données alors que l'objet Selection est la Selection opérée par le curseur.
Le point d'insertion dans votre document est la plus simple expression de votre Selection.
Mais un exemple est bien plus pratique pour la compréhension.
Tapez un texte dans un document, si vous n'avez pas vraiment envie d'écrire, utiliser l'expression suivante :
=Rand(10,10)suivi de Enter dans votre document, vous verrez qu'il se remplit tout seul d'un texte sans queue ni tête qui est malgé tout utilisable pour nos manipulation.
Sélectionnez une portion de texte à la souris et exécutez ce code :
Sub AfficherSelection()
Debug.Print Selection.Text
End SubVous venez de découvrir l'objet Selection.
Il ne peut y avoir qu'un seul objet Selection !
Pour imager un objet Range, nous allons procéder différemment, toujours avec le même texte utilisez ce code :
Sub AfficherRange()
Debug.Print ActiveDocument.Paragraphs(2).Range.Text
End Sub
L'objet Range réprésente la plage de données contenue dans un objet Paragraphe.
Essayez cette fois le même code sans faire appel à l'objet Range.
Sub AfficherRange()
Debug.Print ActiveDocument.Paragraphs(2).Text
End SubVous recevez un magnifique message : Erreur de compilation !
Il est possible d'obtenir un objet sélection au départ du code, essayez :
Sub SelectionnerTexte()
ActiveDocument.Paragraphs(4).Range.Select
End Sub
Vous verrez que le quatrième paragraphe de votre document est sélectioné comme si vous l'aviez fait à la souris.
Nous aurons l'occasion de revenir plus en détail sur ces objets. Mais il était nécessaire de les aborder sommairement pour la suite.
3. Les paragraphes▲
La collection la plus importante d'un document est celle qui contient les paragraphes "Paragraphs". Ce sont eux qui contiennent le texte, la mise en forme, ...
Comme nous travaillons avec une collection, il est possible d'atteinde un membre de cette collection par son Index.
Si vous désirez atteindre le quatrième paragraphe de votre document, vous devrez utiliser :
ActiveDocument.Paragraphs(4)....Dans ce cas, vous renvoyez un objet Paragraph de la collection
3-A. En pratique▲
3-A-1. Récupérer l'Id d'un paragraphe▲
Pour récupérer l'ID d'un paragraphe, il est nécessaire de ruser.
Dans le code ci-dessous, nous partons du point d'insertion, nous étendons la sélection jusqu'au début du document,
il ne nous reste qu'à compter le nombre de paragraphes que la sélection contient.
Sub RecuperationIDPara()
Selection.HomeKey Unit:=wdStory, Extend:=wdExtend
Debug.Print Selection.Paragraphs.Count
End Sub3-A-2. Les styles et les caractères d'un paragraphe▲
Comme déjà mentionné, le style ainsi que la police de caractère ne sont pas appliqués aux paragraphes mais aux données qu'ils contiennent.
Sub AppliquerStyle()
ActiveDocument.Paragraphs(1).Range.Style = "Titre 1"
End SubPour appliquer un style, vous avez plusieurs possibilités pour le nom du style. Vous pouvez utiliser le nom qui apparait dans la galerie des styles, dans notre exemple "Titre 1", ou utiliser une constante Word : wdStyleHeading1.
De la même manière nous pouvons récupérer le style apliqué au paragraphe :
Sub RecupererStyle()
Debug.Print ActiveDocument.Paragraphs(1).Range.Style
End SubSi vous appliquez le style au paragraphe et pas à son contenu, vous ne rencontrerez pas de problème, mais par habitude travaillez avec l'objet Range.
Dans la même optique, vous pouvez modifier la police de caractère d'un paragraphe sans passer par les styles.
Sub ModifierPolice()
With ActiveDocument.Paragraphs(3).Range.Font
.Name = "Arial"
.Bold = True
.StrikeThrough = True
End With
End SubNous l'avons vu plus tôt, With permet d'appliquer à un même objet plusieurs instructions. Instruction With ... End With
3-A-3. Parcourir les paragraphes d'un document▲
Pour parcourir les paragraphes d'un document, nous allons avoir besoin d'utiliser une boucle.
Les boucles
Les paragraphes (Paragraph) font partie de la collection Paragraphs, nous allons utiliser une boucle For Each ... Next.
Sub ParcourirParagraphes()
'Déclaration de l'objet paragraphe
Dim pAra As Paragraph
'Comme nous allons parcourir la collection, il n'est pas utile d'utiliser
'l'opérateur d'affectation Set
For Each pAra In ActiveDocument.Paragraphs
Debug.Print Len(pAra.Range.Text)
Next pAra
End SubLa variable pAra a volontairement été écrite avec une majuscule en seconde posisition. De cette manière, lorsque vous saissisez le nom de la variable en minuscule, le VBE corrige automatiquement et vous êtes certain de la bonne orthographe.
Une paragraphe peut contenir des phrases Sentences. Créez un document vierge, tapez : =rand(1,10) suivi Enter pour ensuite essayer ce code.
Sub CompterPhrases()
Debug.Print ActiveDocument.Paragraphs(1).Range.Sentences.Count
End SubVous devriez obtenir 10. Ce code compte le nombre de phrases contenue dans le premier paragraphe du documet.
Malheureusement, les mots ne sont pas des objets en Word, mais malgré tout, il existe une collection Words qui représente les mots contenus dans une portion du document.
Sub CompterMots()
Debug.Print ActiveDocument.Paragraphs(1).Range.Words.Count
End SubExercice :
Dans ce même morceau de document, vous allez compter le nombre de mots dans chaque phrase du premier paragraphe.
Attention, l'objet Word n'existe pas, vous devrez le déclarer en tant que variant.
Exercice :
Créez un nouveau document, remplissez le avec : =rand(10,2), supprimez le dernier paragraphe vide
Mettez en gras et double souligné le troisième mot de chaque paragraphe.
3-B. Méthodes▲
3-B-1. Add▲
Comme pour toutes les collections, cette méthode va ajouter un paragraphe.
Sub AjouterParagraph()
ActiveDocument.Paragraphs.Add Range:=Paragraphs(3).Range
End SubL'argument Range passé à la méthode peut être omis et dans ce cas, le paragraphe est ajouté au point d'insertion.
Sub AjouterParagraph()
ActiveDocument.Paragraphs.Add
End SubIl existe une méthode de l'objet Selection qui produit le même effet :
Sub AjouterParagraphe()
Selection.InsertParagraph
End Sub3-B-2. Space1 - Space15 - Space2▲
Cette méthode ajoute un interligne Simple, de 1,5 ou double aux paragraphes spécifiés.
La mise en oeuvre est assez simple :
ActiveDocument.Paragraphs.Space15Cette méthode peut s'appliquer à la collection ou à un membre de la collection.
ActiveDocument.PAragraphs(1).Space23-B-3. OutlineDemote - OutlinePromote▲
Ces deux propriétés sont similaires, seule leur action est différente. Dans le case de Promote, on va changer le niveau de titre des paragraphes spécifiés pour monter le niveau de titre de 1 et pour Demote, on va diminuer le niveau de titre de 1.
Si vous avez un paragraphe de niveau de titre 2 et que vous lui appliquez la méthode OutlinePromote, vous aurez un
paragraphe de niveau de titre 1.
De la même manière, la méthode OutlineDemote va diminuer le niveau de titre de 1, si vous appliquez cette méthode à
un paragraphe de titre 2, vous obtiendrez un titre de niveau 3.
Il est beaucoup plus facile d'attribuer un style de titre que de passer par cette méthode.
ActiveDocument.Paragraphs(4).OutlineDemote3-C. Propriétés▲
Les propriétés pour les objets paragraphes sont plus interressantes que les methodes.
3-C-1. Alignment▲
Cette propriété permet l'alignement du paragraphe, vous avez plus de possibilités qu'avec l'interface graphique.
ActiveDocument.Paragraphs(1).Alignment = wdAlignParagraphRightL'alignement peut prendre les valeurs ci-dessous :
| Valeur | Description |
|---|---|
| wdAlignParagraphCenter | Aligné au centre. |
| wdAlignParagraphDistribute | Les caractères du paragraphe sont distribués équitablement pour remplir toute la largeur du paragraphe. |
| wdAlignParagraphJustify | Totalement justifié. |
| wdAlignParagraphJustifyHi | Justifié avec un rapport élévé de compression de caractères. |
| wdAlignParagraphJustifyLow | Justifié avec un faible rapport de compression de caractères. |
| wdAlignParagraphJustifyMed | Justifié avec un rapport moyen de compression de caractères. |
| wdAlignParagraphLeft | Aligné à gauche. |
| wdAlignParagraphRight | 2 Aligné à droite. |
3-C-2. Borders▲
Ajoute des bordures au paragraphe spécifié. Un exemple sera plus intéressant qu'une description.
Sub AjouterBordure()
'Ajoute les bordures au paragraphe
With ActiveDocument.Paragraphs(6)
.Borders(wdBorderLeft).Visible = True
.Borders(wdBorderBottom).Visible = True
.Borders(wdBorderTop).Visible = True
.Borders(wdBorderRight).Visible = True
End With
'Modifie l'aspect de la bordure
With ActiveDocument.Paragraphs(6).Borders
.OutsideLineStyle = wdLineStyleDashDot
End With
End Sub4. Les tableaux▲
4-A. En pratique▲
Les tableaux font partie de la collection Tables. Le plus simple pour les adresser est de passer par leur index.
ActiveDocument.Tables(1)Il est possible de parcourir les différentes tables de votre document à l'aide d'une boucle.
Sub ParcourirTables()
Dim oTbl As Table
For Each oTbl In ActiveDocument.Tables
...
Next oTbl
End SubIl n'est pas possible d'affecter un nom à une table en Word.
Les tableaux sont constitués de lignes et de colonnes.
Sub CompterLignesEtColonnes()
Debug.Print ActiveDocument.Tables(1).Rows.Count 'Nombre de lignes
Debug.Print ActiveDocument.Tables(1).Columns.Count 'Nombre de colonnes
End Sub
En plus de l'addressage des tableaux, il est possible d'adresser chaque cellule de chaque table. Pour l'adressage des cellules,
c'est toujours le même principe, on utilise les coordonées de la cellule.
Pour ajouter du texte dans une cellule, vous devez l'adresser et ensuite affecter à l'objet Range de la cellule le texte voulu.
Sub AjouterTexte()
ActiveDocument.Tables(1).Cell(1,1).Range.Text = "A1"
End SubExercice
Récuperez le texte que vous venez d'ajouter dans la cellule avec un Debug.Print.
4-A-1. Ajout d'un tableau dans un document▲
Comme pour beaucoup d'objet, la méthode pour ajouter est Add.
Sub AjouterTableau()
ActiveDocument.Tables.Add Range:=Selection.Range, numrows:=5, numcolumns:=6
End SubCette table de 5 lignes et 6 colonnes sera ajoutée à l'emplacement du curseur de la souris.
Exercice
En vous basant sur le tuto précédent sur les documents, vous allez sur le document actif créer un table de 3 colonnes et
3 lignes.
Par le code, vous allez créer un nouveau document dans lequel vous allez ajouter une table contenant le même nombre de
lignes et de colonnes.
4-A-2. Ajouter une ligne ou colonne à un tableau▲
En Word, un tableau ou table est constitué de lignes et de colonnes, vous avez utilisé l'exercice précédent deux arguments pour ces objets. Vous pouvez récupérer le nombre de lignes et de colonnes de votre tableau en utilisant la propriété Count.
Sub AfficherLignesEtColonnes()
Dim intR As Integer
Dim intC As Integer
Dim strMessage As String
'Récupération du nombre de lignes et de colonnes
intR = ActiveDocument.Tables(1).Rows.Count
intC = ActiveDocument.Tables(1).Columns.Count
'Élaboration du message par concaténation
strMessage = "Votre tableau contient : " & vbCrLf
strMessage = strMessage & intC & " colonnes " & vbCrLf
strMessage = strMessage & intR & " lignes."
'Affichage du message
MsgBox strMessage
End SubPour ajouter une ligne ou une colonne à un tableau, nous allons procéder de la même façon, mais nou sallons utiliser la méthode Add au lieu de la propriété Count.
Sub AjouterLigneEtColonne()
Dim oTbl As Table
Set oTbl = ActiveDocument.Tables(1)
oTbl.Rows.Add
oTbl.Columns.Add
Set oTbl = Nothing
End Sub
Ce code va simplement ajouter un ligne et une colonne à la fin de votre tableau pour la ligne et à la droite pour la colonne.
Ce serait beaucoup plusinéteressant de pouvoir ajouter cette ligne ou cette colonne à un endroit de votre choix.
La méthode Add peut prendre un argument pour l'ajout.
Sub AjouterLigneEtColonne()
Dim oTbl As Table
Set oTbl = ActiveDocument.Tables(1)
oTbl.Rows.Add BeforeRow:=oTbl.Rows(2)
oTbl.Columns.Add BeforeColumn:=oTbl.Columns(2)
Set oTbl = Nothing
End SubDans l'exemple ci-dessus, nous ajoutons un ligne avant la seconde et pareil pour la colonne. La seule difficulté est la valeur passée à l'argument, ce n'est pas un entier, mais un objet ligne ou colonne.
4-A-3. Contenu d'une cellule▲
Lorsque vous ajoutez ou utilisez une table dans un document, vous pouvez aussi ajouter des données dans les cellules. Pour ajouter des données dans une cellule, la méthode est assez simple, il suffit d'adresser cette cellule est d'affecter les données au Range de la cellule
ActiveDocument.Tables(1).Cell(1,1).Range.Text = "Mon Texte"Pour récupérer le contenu d'une cellule, la méthode est le même que pour l'ajout de données.
Debug.Print ActiveDocument.Tables(1).Cell(1,1).Range.TextNous avons vu comment ajouter un contenu à une cellule et un exercice pour le récupérer. Lors de cette récupération, vous aurez pobablement remarqué que le texte récupéré est plus long que le texte ajouté. Ce phénomène est dû aux caractères non imprimables qui délimitent la cellule. Pour remédier à cet inconvénient, nous allons fabriquer une petite fonction utilisant certaines fonctions que nous avons vu dans les chapitres précédents, les fonctions Len et Left.
Nous allons récupérer le contenu, mesurer sa taille en comptant le nombre de caractères présents et nous allons prendre tous les caractères sans les deux derniers. Nous allons appeler cette fonction NetText et lui passer en paramètre le texte contenu dans la cellule qui est à traiter.
Petit rappel
Appel d'une procédure
Public Function NetText(stTemp As String) As String
'Nous utilisans les caractères de la chaîne sans les deux derniers
NetText = Left( stTemp , Len(stTemp) - 2 )
End SubSouvenez vous de cette focntion, vous en aurez souvent besoin.
L'utilisation de l'ensemble est assez simple :
Debug.Print NetText ActiveDocument.Tables(1).Cell(1,1).Range.TextIl est fréquent que l'on soit tenu d'ajouter un ligne à un table pour y injecter des données. Pour y parvenir nous allons utiliser la méthode Add et ensuite la propriété Count pour obtenir le nombre de ligne et de cette manière, nous pourrons adresser la dernière.
Sub AjouterLigneEtDonnees()
Dim oTbl As Table
Set oTbl = ActiveDocument.Tables(1)
oTbl.Rows.Add
oTbl.Rows(oTbl.Rows.Count).Cell(1).Range.Text = "Dernière Ligne"
Set oTbl = Nothing
End SubExercice
Nous avons vu comment ajouter un tableau à un document et comment adresser les cellules de ce tableau.
Vous allez créer un nouveau document y ajouter un table qui sera une table de multiplication pour les nombres de
1 à 10 et 20 valeurs par nombre. Vous ajouterez des titres aux colonnes et aux lignes.
4-A-4. Format d'une cellule▲
En plus d'un contenu, le Range de la cellule possède des attributs permettant de définir le format du texte contenu et de la cellule elle-même.
ous aurez probablement remarqué que lorsque vous insérez un tableau dans un document, toutes les lignes sont transparentes. Le code ci-dessous va ajouter une bordure au tableau et definir des lignes pour border les cellules.
Sub AjouterContour()
Dim oTbl As Table
Set oTbl = ActiveDocument.Tables(1)
With oTbl.Borders
.Enable = True
.InsideLineStyle = wdLineStyleDot
.OutsideLineStyle = wdLineStyleSingle
.InsideLineWidth = wdLineWidth050pt
.OutsideLineWidth = wdLineWidth100pt
End With
End SubLe texte que vous allez insérer aura le format par défaut des cellules, mais vous pouvez modifier le format du texte contenu dans une cellule.
With oTbl.Rows(1).Range.Font
.Bold = True
.Underline = wdUnderlineDouble
.UnderlineColor = wdColorBrightGreen
End With4-B. Méthodes▲
4-B-1. Add▲
Nous avons déjà utilisé cette méthode, elle permet l'ajout d'une table à la collection des tables du document.
ActiveDocument.Tables.Add Range:=Selection.Range, numrows:=5, numcolumns:=6Les trois arguments ne sont pas facultatifs, Range représente l'endroit où la table sera ajoutée, numrows le nombre de lignes et numcolumns le nombre de colonnes.
4-B-2. Delete▲
Sans aucune surprise, cette méthode va supprimer une table de votre document.
ActiveDocument.Tables(1).Delete4-B-3. Select▲
Cette méthode va sélectionner une table de votre document. Vous pourrez ensuite utiliser l'objet Selection pour effectuer certaines actions.
ActiveDocument.Tables(1).Select
Selection.Copy
Documents.Add
ActiveDocument.Select
Selection.Paste4-B-4. Sort▲
Méthode intéressante, elle permet de trier le contenu d'une table. Il existe trois méthodes de tri pour une table :
- SortAscending
- SortDescending
- Sort
Les deux premières méthodes permettent un tri rapide d'une table. Le tri sera croissant ou décroisant selon que l'on utilise l'un ou l'autre. Leur utilisation est simple et ne comporte pas d'argument.
Sub TriTable()
ActiveDocument.Tables(1).SortDescending
End SubLa première ligne de la table est systématiquement exclue du tri avec ces deux méthodes.
La méthode Sort est un peu plus complexe, mais plus performante. Vous pouvez avec cette méthode effectuer un tri sur plusieurs colonnes, inclure la première ligne dans votre tri,...
4-C. Propriétés▲
4-C-1. Count▲
La propriété la plus universelle s'applique aussi aux tables d'un document, elle va renvoyer le nombre d'objets de la collection.
debug.Print ActiveDocument.Tables.Count4-C-2. AllowAutofit▲
Si vous voulez redimentionner un tableau en fonction de son contenu, c'est la propriété que vous devez utiliser.
ActiveDocument.Tables(1).AllowAtofit4-C-3. AllowPageBreaks ▲
Il est très embêtant de voir un tableau coupé en deux par un saut de page. Lorsque cette propriété est sur False, votre tableau sera en un seul morceau si c'est possible. En effet, si votre tableau fait plusieurs pages, vous n'aurez pas d'autre solution que de le scinder.
ActiveDocument.Tables(1).AllowPageBreaks = False4-C-4. Borders ▲
4-C-5. Range▲
Cette propriété renvoie la partie du document cntenue dans un tableau.
Sub TablesRange()
Debug.Print ActiveDocument.Tables(2).Range.Text
End SubCe code va renvoyer le contenu de toutes les cellules de votre tableau.
4-C-6. Tables▲
Cette propriété peut parraître déplacée, mais une table peut contenir une autre table.
Sub AjouterTables()
Dim oTbl As Table
Set oTbl = ActiveDocument.Tables.Add(Range:=Selection.Range, numrows:=2, numcolumns:=2)
oTbl.Cell(1, 1).Select
Selection.Tables.Add Range:=Selection.Range, numrows:=1, numcolumns:=2
End Sub5. Solutions▲
5-A. Compter les mots des phrases▲
Nous allons parcourir la collection des phrases pour compter le nombre de mots contenu dans chaque phrase. du premier paragraphe.
Sub CompterMots()
Dim wdSentence
' ne pas donner de type à la variable équivaut à la déclarer
' comme variant
' Faire une boucle sur la collection Sentence et en compter les mots
For Each wdSentence In ActiveDocument.Paragraphs(1).Range.Sentences
Debug.Print wdSentence.Words.Count
Next wdSentence
End SubNe pas déclarer le type de la variable ne doit être utilisé que si ce type n'existe pas.
5-B. Mettre troisième mot en gras et double souligné▲
Comme nous devons parcourir tous les paragraphes de la collection, nous allons déclarer un objet paragraphe et une boucle For Each ... Next. Pour chaque paragraphe, nous allons adresser le troisième mot de la collection des mots de ce paragraphe.
Sub MettreMot3Gras()
'Déclaration des variable
Dim pAra As Paragraph
'Boucle sur les paragraphes du document
For Each pAra In ActiveDocument.Paragraphs
With pAra.Range.Words(3).Font
.Bold = True
.Underline = wdUnderlineDouble
End With
Next pAra
End Sub5-C. Ajouter un document contenant une table▲
Pour ajouter une table vous devez spécifier le nombre de lignes et de colonnes que votre table va contenir. Pour y parvenir, nous allons utiliser deux variables qui vont contenir le nombre de lignes (intR) et de colonnes (intC). Pour l'ajout de la nouvelle table, nous utiliserons ces deux variables.
Sub AjouterDocEtTable()
Dim intR As Integer
Dim intC As Integer
With ActiveDocument.Tables(1)
intR = .Rows.Count 'Nombre de lignes
intC = .Columns.Count 'Nombre de colonnes
End With
'Ajout du nouveau document
Documents.Add
'Ajout d'une table
ActiveDocument.Tables.Add Range:=Selection.Range, numrows:=intR, numcolumns:=intC
End SubComme le document ajouté devient le Document Actif, pour ajouter la table, nous utiliserons l'ActiveDocument.
5-D. Table de multiplication▲
Avant de créer notre document, nous devons déterminer combien lignes et de colonnes votre table va comporter.
L'ennoncé demande 10 nombres, 20 valeurs et un titre par colonne et par ligne. Ce qui va nous donner 11 colonnes et
21 lignes.
Nous allons en profiter pour changer l'apparence de notre table en ajoutant des bordures extérieures et intérieures, les
titres des lignes et colonnes seront en gras souligné.
Pour l'ajout d'un nouveau document, nous l'avons déjà vu plus tôt.
Dim oDoc As Document
Set oDoc = Application.Documents.Add
Pour l'ajout d'une table, vous l'avez déjà fait.
Dim oTbl As Table
Dim intR As Integer 'Nombre de lignes
Dim intC As Integer 'Nombre de colonnes
' Ajout de notre table
Set oTbl = oDoc.Tables.Add (Range:=Selection.Range, NumRows:= 21 , NumColumns:=11)Pour les résultats, nous allons utiliser une boucle
For intR = 2 To 21
For intC = 2 To 11
oTbl.Cell(intR, intC).Range.Text = (intC - 1) * ( intR - 1)
Next intC
Next intRIl nous manque les données pour les titres des lignes et colonnes et nous allons en profiter pour mettre notre test en forme.
For intR = 2 To 21
'Données de la première ligne
oTbl.Cell(intR, 1).Range.Text = intR - 1
'Mise en forme de chaque cellule
With oTbl.Cell(intR, 1).Range.Font
.Bold = True
.Underline = wdUnderlineDouble
.UnderlineColor = wdColorBlack
End With
Next intR
For intC = 2 To 11
'Données de la première colonnes
oTbl.Cell(1, intC).Range.Text = intC - 1
'Mise en forme
With oTbl.Cell(1, intC).Range.Font
.Bold = True
.Underline = wdUnderlineDouble
.UnderlineColor = wdColorBlack
End With
Next intCFinalement, il nous reste la mise en forme de la table
With oTbl.Borders
.Enable = True
.InsideLineStyle = wdLineStyleDot
.OutsideLineStyle = wdLineStyleSingle
.InsideLineWidth = wdLineWidth050pt
.OutsideLineWidth = wdLineWidth100pt
End WithSi nous assemblons tous nos petits morceaux de code, nous obtenons ceci :
Sub TableDeMultiplication()
Dim oDoc As Document
Dim oTbl As Table
Dim intR As Integer 'Nombre de lignes
Dim intC As Integer 'Nombre de colonnes
Set oDoc = Application.Documents.Add
' Ajout de notre table
Set oTbl = oDoc.Tables.Add(Range:=Selection.Range, NumRows:=21, NumColumns:=11)
'Les résultats
For intR = 2 To 21
For intC = 2 To 11
oTbl.Cell(intR, intC).Range.Text = (intR - 1) * (intC - 1)
Next intC
Next intR
'Les titres
intR = 0
intC = 0
For intR = 2 To 21
oTbl.Cell(intR, 1).Range.Text = intR - 1
With oTbl.Cell(intR, 1).Range.Font
.Bold = True
.Underline = wdUnderlineDouble
.UnderlineColor = wdColorBlack
End With
Next intR
For intC = 2 To 11
oTbl.Cell(1, intC).Range.Text = intC - 1
With oTbl.Cell(1, intC).Range.Font
.Bold = True
.Underline = wdUnderlineDouble
.UnderlineColor = wdColorBlack
End With
Next intC
'Mise en forme
'Bordure
With oTbl.Borders
.Enable = True
.InsideLineStyle = wdLineStyleDot
.OutsideLineStyle = wdLineStyleSingle
.InsideLineWidth = wdLineWidth050pt
.OutsideLineWidth = wdLineWidth100pt
End With
End Sub6. Liens Utiles▲
7. Remerciements▲
Je tiens à remercier pour leurs contributions à ce projet :
- lorenzole+bo
- Philippe JOCHMANS
- Caro-Line
- Arkham46
- Jeannot45





