Table des matières
Ajouter un tableau à un document Word
Cette macro simple ajoutera un tableau à votre document Word :
Sub VerySimpleTableAdd() Dim oTable As Table Set oTable = ActiveDocument.Tables.Add(Range:=Selection.Range, NumRows:=3, NumColumns:=3) End Sub
Sélectionner un tableau dans Word
Cette macro sélectionnera le premier tableau du document Word actif :
Sub SelectTable() 'sélectionne la première table dans le doc actif If ActiveDocument.Tables.Count > 0 Alors 'pour éviter les erreurs, nous vérifions si une table existe dans le doc actif ActiveDocument.Tables(1).Select End If End Sub
Parcourir toutes les cellules d'un tableau
Cette macro VBA parcourra toutes les cellules d'un tableau, en écrivant le nombre de cellules dans la cellule :
Sub TableCycling() ' boucle à travers toutes les cellules de la table Dim nCounter As Long ' ceci sera écrit dans toutes les cellules de la table Dim oTable As Table Dim oRow As Row Dim oCell As Cell ActiveDocument.Range.InsertParagraphAfter 'fait juste un nouveau para à la fin du doc , la table sera créée ici. Set oTable = ActiveDocument.Tables.Add(Range:=ActiveDocument.Paragraphs.Last.Range, NumRows:=3, NumColumns:=3) 'créer une table et l'affecter à la variable pour chaque oRow dans oTable. La boucle externe des lignes passe par les lignes pour chaque oCell In oRow.Cells 'la boucle interne va nCounter = nCounter + 1 'augmente le compteur oCell.Range.Text = nCounter 'écrit le compteur dans la cellule Next oCell Next oRow 'affiche le résultat de la cellule de deuxième colonne de la deuxième ligne Dim strTemp As String strTemp = oTable.Cell(2, 2).Range.Text MsgBox strTemp End Sub
Créer un tableau Word à partir d'un fichier Excel
Cet exemple VBA va créer un tableau à partir d'un fichier Excel :
Sub MakeTablefromExcelFile() 'advanced Dim oExcelApp, oExcelWorkbook, oExcelWorksheet, oExcelRange Dim nNumOfRows As Long Dim nNumOfCols As Long Dim strFile As String Dim oTable As Table 'word table Dim oRow As Row 'word row Dim oCell as Cell Dim 'word As Long, y As Long 'counter for loops strFile = "c:\Users\Nenad\Desktop\BookSample.xlsx" 'change au chemin réel Set oExcelApp = CreateObject("Excel.Application") oExcelApp.Visible = True Set oExcelWorkbook = oExcelApp.Workbooks.Open(strFile) 'ouvre le classeur et l'affecte à la variable Set oExcelWorksheet = oExcelWorkbook.Worksheets(1) 'affecte la première feuille de calcul à la variable Set oExcelRange = oExcelWorksheet.Range("A1:C8") nNumOfRows = oExcelRange.Rows. Count nNumOfCols = oExcelRange.Columns.Count ActiveDocument.Range.InsertParagraphAfter 'fait juste un nouveau para à la fin du document, le tableau sera créé ici Set oTable = ActiveDocument.Tables.Add(Range:=ActiveDocument.Paragraphs.Last.Range, NumRows : =nNumOfRows, NumColumns:=nNumOfCols) 'créer e table et l'affecter à la variable '*** real deal, la table est remplie ici For x = 1 To nNumOfRows For y = 1 To nNumOfCols oTable.Cell(x, y).Range.Text = oExcelRange.Cells(x, y). ).Value Next y Next x '*** oExcelWorkbook.Close False oExcelApp.Quit Avec oTable.Rows(1).Range 'nous pouvons maintenant appliquer un peu de beauté à notre table :) .Shading.Texture = wdTextureNone .Shading.ForegroundPatternColor = wdColorAutomatic .Shading.BackgroundPatternColor = wdColorYellow End With End Sub