Redimensionner la plage à l'aide de VBA
Ce tutoriel montrera comment utiliser le Redimensionner la propriété du Objet de plage à modifier pour renvoyer une nouvelle plage redimensionnée à partir de l'objet Range d'origine.
Syntaxe
La syntaxe de la propriété Resize est :
1 | Range ("A1").Resize (RowSize, ColumnSize) |
Où Range ("A1") est votre plage de départ.
RowSize et ColumnSize doivent être supérieurs à zéro. Chaque entrée est facultative (par exemple, vous pouvez omettre RowSize pour modifier uniquement le nombre de colonnes, ou vice-versa).
Redimensionner le nombre de lignes et de colonnes
L'exemple suivant étend la plage avec une cellule A1 à la plage A1:D10 en augmentant le nombre de lignes à 10 et le nombre de colonnes à 5.
1 | Plage("A1").Redimensionner (10, 5).Sélectionner |
Ou, plus communément, vous affecterez la plage redimensionnée à une variable :
12 | ' Redimensionner la plage à la taille souhaitée et l'affecter à une variableDéfinir newRng = ActiveSheet.Range("A1").Resize(10, 5) |
Redimensionner le nombre de lignes uniquement
L'exemple suivant modifie uniquement le nombre de lignes :
12 | ' Modifier la taille de la ligne uniquement, la nouvelle plage sera de $A$1 :$A$10Définir newRng = rng.Resize(10) |
Redimensionner le nombre de colonnes uniquement
L'exemple suivant modifie uniquement le nombre de colonnes :
12 | ' Changer la taille de la colonne uniquement, la nouvelle plage sera $A$1:$E$1Définir newRng = rng.Resize(, 5) |
Redimensionner la plage du tableau pour exclure l'en-tête
Si vous avez un tableau sur une feuille active avec une ligne d'en-tête, le code sélectionnera d'abord l'ensemble du tableau, puis descendra d'une ligne pour exclure l'en-tête à l'aide de la méthode Range.Offset. Il utilisera ensuite la propriété Range.Resize pour réduire la taille d'une ligne.
1234567891011 | Sous SelectTableData()' **IMPORTANT**' Cliquez sur n'importe quelle cellule du tableau avant d'exécuter la macro' Descendre d'une ligne en utilisant le décalage, puis réduire la taille de la plage d'une ligneDéfinir tbl = ActiveCell.CurrentRegion.Offset(1, 0).Resize(tbl.Rows.Count - 1, _tbl.Columns.Count)' Les données sont sélectionnées à l'exclusion de la ligne d'en-têtetbl.Adresse.SelectFin du sous-marin |
Écrire un tableau 2D dans une plage
Une autre utilisation courante consiste à écrire un tableau à 2 dimensions sur une feuille. Étant donné que 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 lira les données de la plage A1:E10 dans la feuille active dans un tableau et écrira le tableau dans la feuille « Sortie » à partir de la cellule A1 :
123456 | Sous WriteArray()' Lire les données dans un tableaudonnées = Plage("A1:E10").Valeur' Redimensionner la plage de sortie et écrire le tableauWorksheets("Sortie").Range("A1").Resize(UBound(data, 1), UBound(data, 2)).Valeur = dataFin du sous-marin |
Écrit par : Vinamra Chandra