Déplacer une table (Microsoft Word)
Ray se demande s’il existe un moyen de déplacer un tableau Word entier verticalement, pixel par pixel. Tout ce qu’il a lu indique que le saisir et maintenir la touche Alt le permettra, mais cela ne fonctionne pas correctement.
Je ne sais pas où Ray a lu, mais la touche Alt ne permet pas de déplacer les tables. En fait, cela ne semble pas du tout fonctionner pour le mouvement du tableau, à une exception près: si vous appuyez sur Maj + Alt puis utilisez les touches fléchées vers le haut ou vers le bas, le tableau est déplacé vers le haut ou vers le bas d’un paragraphe entier dans votre document.
Les autres combinaisons de touches ne fonctionnent pas non plus. On pourrait penser que le déplacement des tableaux fonctionnerait comme pour les autres objets d’un document – vous sélectionnez l’objet, puis utilisez les touches fléchées pour donner le déplacement. Cependant, cela ne fonctionne pas du tout avec les tables. Si vous sélectionnez le tableau et appuyez sur les touches fléchées vers le haut ou vers le bas, Word désélectionne le tableau et déplace le point d’insertion au-dessus ou en dessous du tableau dans le document.
Il existe cependant quelques solutions de contournement que vous pouvez utiliser. Tout d’abord, vous pouvez ajuster la façon dont vous mettez vos tableaux dans le document. Placez-les simplement dans une zone de texte, puis vous pouvez utiliser les touches fléchées pour déplacer la zone de texte.
(Vous pouvez également formater la bordure de la zone de texte pour qu’elle ne s’affiche pas.)
Une autre solution de contournement consiste à utiliser une macro pour effectuer le mouvement. La macro suivante déplacera le tableau d’un pixel vers le haut:
Sub MoveTableUp1() ' set pxl to the number of pixels to move: positive for down and ' negative for up Const pxl As Single = -1 If Not Selection.Information(wdWithInTable) Then Exit Sub With Selection.Tables(1) .Rows.VerticalPosition = .Rows.VerticalPosition + PixelsToPoints(pxl) End With End Sub
Tout ce que vous devez faire est de vous assurer que le point d’insertion se trouve dans le tableau que vous souhaitez déplacer. Si vous voulez déplacer le tableau vers le bas plutôt que vers le haut, changez simplement la définition de la constante pxl pour qu’elle soit un 1 positif au lieu d’un 1 négatif.
Il y a autre chose que vous devriez noter à propos de cette macro: cela peut gâcher la mise en page de votre document. Vous voyez, la propriété VerticalPosition n’est efficace que si votre tableau est configuré pour autoriser le texte à s’enrouler autour de lui.
(Ceci est configuré dans la zone Habillage de tableau de la boîte de dialogue Propriétés du tableau.) Reconnaissant cela, lorsque vous utilisez la macro pour ajuster la propriété VerticalPosition, il change automatiquement la table de «aucun» à «autour». Ceci, évidemment, pourrait affecter la mise en page si vous n’aviez pas auparavant activé l’habillage et que le tableau est plus étroit que votre zone de texte.
Il y a aussi un autre « gotcha » potentiel ici. Vous pourriez penser que vous pouvez ajuster la position horizontale du tableau en modifiant la propriété VerticalPosition dans la macro ci-dessus en HorizontalPosition. Cela semble logique, mais la façon dont cela fonctionne dans la macro peut vous jeter pour une boucle.
Là où l’ajustement de la propriété VerticalPosition changera l’habillage du tableau de «aucun» à «autour», l’ajustement de la propriété HorizontalPosition ne le sera pas. Au lieu de cela, sur certaines versions de Word, cela vous donnera une erreur.
Le moyen le plus sûr de gérer toutes ces bizarreries est d’ajuster la macro pour s’assurer qu’elle n’ajuste une table que si sa propriété d’habillage est définie sur True, de cette manière:
Sub MoveTableUp2() Dim sTemp As String ' set pxl to the number of pixels to move: positive for down and ' negative for up Const pxl As Single = -1 sTemp = "" If Selection.Information(wdWithInTable) Then With Selection.Tables(1).Rows If .WrapAroundText Then .VerticalPosition = .VerticalPosition + PixelsToPoints(pxl) Else sTemp = "Table is inline. No action taken." End If End With Else sTemp = "The insertion point is not within a table. No action taken." End If If sTemp > "" Then MsgBox sTemp End Sub
Cette variante de la macro comprend également un peu plus de rétroaction pour l’utilisateur, de sorte que si aucune action n’est entreprise, l’utilisateur est informé pourquoi c’est le cas.
Si vous préférez, vous pouvez déplacer la table d’un point (1/72 de pouce) à la fois. Voici la version de la macro qui pourrait gérer ce mouvement:
Sub MoveTableUp3() Dim sTemp As String ' set pt to the number of points to move: positive for down and ' negative for up Const pt As Single = -1 sTemp = "" If Selection.Information(wdWithInTable) Then With Selection.Tables(1).Rows If .WrapAroundText Then .VerticalPosition = .VerticalPosition + pt Else sTemp = "Table is inline. No action taken." End If End With Else sTemp = "The insertion point is not within a table. No action taken." End If If sTemp > "" Then MsgBox sTemp End Sub
Comme déjà indiqué, déplacer le tableau horizontalement au lieu de verticalement consiste simplement à utiliser la propriété HorizontalPosition avec l’objet Rows plutôt qu’avec la propriété VerticalPosition.
N’oubliez pas, cependant, les mises en garde évoquées, ainsi que sur la façon dont la propriété HorizontalPosition diffère dans l’utilisation de la propriété VerticalPosition. Dans cet esprit, vous pouvez créer facilement quatre versions de votre macro (pour chacune des quatre directions, vous voudrez peut-être pousser votre tableau), puis attribuer des touches de raccourci aux macros.
_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 (12136) s’applique à Microsoft Word 2007, 2010, 2013, 2016, 2019 et Word dans Office 365.