Remplir les cellules d’un tableau avec une macro (Microsoft Word)
Lorsque vous travaillez avec des tableaux dans Word, vous souhaiterez peut-être remplir les différentes cellules d’un tableau avec une valeur définie. Par exemple, vous souhaiterez peut-être copier quelque chose dans le Presse-papiers, puis coller le contenu du Presse-papiers dans chaque cellule d’un tableau. La macro suivante fera l’affaire:
Sub PasteToCells() Dim TargetRange As Range Dim oTargCell As Cell If Selection.Cells.Count = 0 Then 'Quit if no cells in selection MsgBox "No cells selected", vbCritical Exit Sub End If On Error Resume Next Set TargetRange = Selection.Range For Each oTargCell In Selection.Cells oTargCell.Range.Paste Next oTargCell TargetRange.Select End Sub
La macro commence par vérifier que la sélection comprend certaines cellules. Sinon, l’utilisateur est informé et la macro est terminée.
Ensuite, la sélection est stockée dans une variable pour pouvoir être sélectionnée (à nouveau) à la fin de la macro. Sans ce code, la macro laisserait le point d’insertion réduit dans la première cellule de la sélection d’origine.
La vraie viande de la macro est dans la boucle For … Next. Il parcourt les cellules de la sélection et remplace tout ce qui s’y trouve par le contenu du Presse-papiers. Enfin, la sélection d’origine est à nouveau sélectionnée et la macro se termine.
Vous avez probablement remarqué qu’il existe également une instruction On Error dans la macro. Cette instruction indique essentiellement à Word d’ignorer toutes les erreurs et de passer à l’instruction suivante. Les erreurs qui pourraient être déclenchées incluent l’exécution de la macro sans rien dans le Presse-papiers ou la tentative de coller un tableau dans une cellule de tableau. Word ne fera aucune des tâches, mais il continuera d’essayer jusqu’à ce que toutes les cellules de la sélection soient terminées.
Vous devez noter que cette macro remplace tout ce qui se trouve dans les cellules sélectionnées par le contenu du Presse-papiers; tout ce qui était auparavant dans les cellules est perdu. Si vous souhaitez à la place ajouter des informations au début des cellules, sans perturber le contenu existant de la cellule, vous pouvez utiliser cette macro légèrement modifiée:
Sub PasteToCellsStart() Dim TargetRange As Range Dim oTargCell As Cell Dim PasteRange As Range If Selection.Cells.Count = 0 Then 'Quit if no cells in selection MsgBox "No cells selected", vbCritical Exit Sub End If On Error Resume Next Set TargetRange = Selection.Range For Each oTargCell In Selection.Cells Set PasteRange = oTargCell.Range PasteRange.Collapse wdCollapseStart PasteRange.Paste Next oTargCell TargetRange.Select End Sub
Une dernière modification serait de proposer une macro qui collerait à la fin de ce qui est dans les cellules. Vous pourriez penser que vous pourriez remplacer wdCollapseStart par wdCollapseEnd dans la macro précédente, mais cela ne fonctionne pas correctement dans les tables. Au lieu de cela, vous devez remplacer la boucle For … Next dans la macro ci-dessus. L’exemple suivant montre une version modifiée de la macro.
Sub PasteToCellsEnd() Dim TargetRange As Range Dim oTargCell As Cell Dim PasteRange As Range If Selection.Cells.Count = 0 Then 'Quit if no cells in selection MsgBox "No cells selected", vbCritical Exit Sub End If On Error Resume Next Set TargetRange = Selection.Range For Each oTargCell In Selection.Cells Set PasteRange = oTargCell.Range.Characters.Last PasteRange.Collapse wdCollapseStart PasteRange.Paste Next oTargCell TargetRange.Select End Sub
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites WordTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / wordribbon-WordTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
WordTips est votre source pour une formation Microsoft Word rentable.
(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (13157) s’applique à Microsoft Word 2007, 2010, 2013, 2016, 2019 et Word dans Office 365. Vous pouvez trouver une version de cette astuce pour le ancienne interface de menu de Word ici:
link: / word-Filling_Table_Cells_with_a_Macro [Remplir les cellules du tableau avec une macro]
.