Redimensionner une zone de texte dans une macro (Microsoft Excel)
Rob a une zone de texte, dans une feuille de calcul, qui contient du texte copié à partir de Word.
Il veut savoir comment il peut redimensionner la zone de texte à l’aide d’une macro, afin qu’elle couvre une plage spécifique de cellules.
Vous pouvez aborder cette tâche de plusieurs manières. La première consiste à spécifier, dans la macro, les cellules exactement que vous souhaitez couvrir avec la zone de texte, puis à ajuster les propriétés de la zone de texte pour qu’elles correspondent aux caractéristiques des cellules que vous spécifiez.
Sub ResizeBox1() Dim sTL As String Dim sBR As String Dim rng As Range ' Change top-left and bottom-right addresses as desired sTL = "A1" sBR = "M40" ' Ensure a text box is selected If TypeName(Selection) <> "TextBox" Then MsgBox "Text box not selected" Exit Sub End If With Selection Set rng = ActiveSheet.Range(sTL) .Top = rng.Top .Left = rng.Left Set rng = ActiveSheet.Range(sBR) .Width = rng.Left + rng.Width .Height = rng.Top + rng.Height End With Set rng = Nothing End Sub
Pour utiliser la macro, modifiez l’adresse des cellules que vous souhaitez utiliser pour le coin supérieur gauche et inférieur droit de la zone de texte. Ensuite, sélectionnez la zone de texte et exécutez la macro.
Si vous préférez, vous pouvez utiliser une plage nommée pour spécifier la plage à couvrir par la zone de texte. La macro suivante s’attend à ce que la plage soit nommée RangeToCover. Lorsque vous sélectionnez la zone de texte et exécutez la macro, la zone de texte est redimensionnée pour correspondre à la taille de la plage.
Sub ResizeBox2() Dim l_rRangeToCover As Range Dim l_rLowerRight As Range ' Ensure a text box is selected If TypeName(Selection) <> "TextBox" Then MsgBox "Text box not selected" Exit Sub End If ' Get the range to cover Set l_rRangeToCover = _ ActiveSheet.Range(Names("RangeToCover").RefersToRange.Value) ' Get its lower right cell Set l_rLowerRight = _ l_rRangeToCover.Cells( _ l_rRangeToCover.Rows.Count, _ l_rRangeToCover.Columns.Count) ' Resize the text box With Selection .Left = l_rRangeToCover.Left .Top = l_rRangeToCover.Top .Width = l_rLowerRight.Left + l_rLowerRight.Width - .Left .Height = l_rLowerRight.Top + l_rLowerRight.Height - .Top End With End Sub
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (10185) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:
link: / excel-Resizing_a_Text_Box_in_a_Macro [Redimensionner une zone de texte dans une macro]
.