Excel VBA – Redimensionner une Plage
In this Article
Redimensionner une Plage en Utilisant VBA
Ce tutoriel montre comment utiliser la propriété Resize de l’objet Range pour modifier et renvoyer une nouvelle plage redimensionnée à partir de l’objet Range d’origine.
Syntaxe
La syntaxe de la propriété Resize est la suivante
Range("A1").Resize (Nombre_De_Lignes, Nombre_De_Colonnes)
Où Range(« A1 ») est votre plage de départ. Nombre_De_Lignes et Nombre_De_Colonnes doivent être supérieurs à zéro. Chaque entrée est facultative (par exemple, vous pouvez omettre RowSize pour ne modifier que le nombre de colonnes, ou vice-versa).
Redimensionnement du Nombre de Lignes et de Colonnes
L’exemple suivant étend la plage contenant une cellule A1 à la plage A1:D10 en augmentant le nombre de lignes à 10 et le nombre de colonnes à 5.
Range("A1").Resize(10, 5).Select
Ou, plus couramment, vous attribuerez la plage redimensionnée à une variable :
' Redimensionnez la plage à la taille souhaitée et affectez-la à une variable
Set nouvPlage = ActiveSheet.Range("A1").Resize(10, 5)
Redimensionnement du Nombre de Lignes Uniquement
L’exemple suivant modifie uniquement le nombre de lignes :
' Modifier uniquement la taille des lignes, la nouvelle plage sera $A$1:$A$10
Set nouvPlage = rng.Resize(10)
Redimensionnement du Nombre de Colonnes Uniquement
L’exemple suivant modifie uniquement le nombre de colonnes :
' Modifie uniquement la taille des colonnes, la nouvelle plage sera $A$1:$E$1
Set nouvPlage = rng.Resize(, 5)
Redimensionnement d’une Plage de Tableau pour Exclure l’En-Tête
Si vous avez un tableau sur la feuille active avec une ligne d’en-tête, le code sélectionnera d’abord le tableau entier puis descendra d’une ligne pour exclure l’en-tête en utilisant la méthode Range.Offset. Il utilisera ensuite la propriété Range.Resize pour réduire la taille d’une ligne.
Sub SélectionnerDonnéesTableau()
' **IMPORTANT**
' Cliquez sur une cellule du tableau avant d'exécuter la macro
' Déplace la plage d'une ligne vers le bas en utilisant Offset, puis réduit sa taille d'une ligne
Set tbl = ActiveCell.CurrentRegion.Offset(1, 0)
Set tbl = tbl.Resize(tbl.Rows.Count - 1, tbl.Columns.Count)
' Les données sont sélectionnées en excluant la ligne d'en-tête
tbl.Select
End Sub
Ecriture d’un Tableau à 2 Dimensions dans une Plage
Une autre utilisation courante consiste à écrire un tableau à deux dimensions dans une feuille. Comme la plage à écrire doit correspondre à la taille du tableau, qui n’est normalement pas connue à l’avance, la méthode Resize est utilisée pour définir la plage de sortie.
L’exemple ci-dessous va lire les données de la plage A1:E10 dans la feuille active dans un tableau et écrire le tableau dans la feuille ‘Sortie’ en commençant par la cellule A1 :
Sub ÉcrireUnTableau()
' Lecture des données dans un tableau
Données = Range("A1:E10").Value
' Redimensionnement de la plage de sortie et écriture du tableau
Worksheets("Sortie").Range("A1").Resize(UBound(Données, 1), UBound(Données, 2)).Value = Données
End Sub
Écrit par : Vinamra Chandra