Macros Word VBA - Tableaux : ajouter, sélectionner, boucler, insérer à partir d'Excel

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
wave wave wave wave wave