Description #
Ce module permet de redimensionner un ensemble de cellules dans une feuille de calcul pour exclure par exemple le titre des colonnes ou des lignes.
Vous pouvez soit partir d’une cellule classique : « $b$2 » soit utiliser une cellule nommée, comme dans cet exemple : « SFS_Begin ».
La première étape consister à identifier la zone de sélection dans sa globalité en utilisant la fonction « .CurrentRegion ».
Puis on demande à Excel de redéfinir la sélection en tenant compte du nombre de lignes et de colonnes
code #
Cas avec exclusion de la première ligne #
Sub test()
dim tbl as range
Set tbl = Range(« SFS_Begin« ).CurrentRegion
tbl.Offset(1, 0).Resize(tbl.Rows.Count – 1, tbl.Columns.Count).Select
End Sub
Cas avec exclusion de la première colonne #
Sub test()
dim tbl as range
Set tbl = Range(« SFS_Begin« ).Offset(0, 0).CurrentRegion
tbl.Offset(0, 1).Resize(tbl.Rows.Count , tbl.Columns.Count-1).Select
End Sub
Commentaires #
Ce code est pratique dans les cas suivants:
* Modifier de manière dynamique des zone de données dans tableau Excel, surtout si vous ajoutez des lignes ou des colonnes avec une macro
* Redimensionner de manière automatique la zone de données pour mettre à jour des formules, des tableaux croisés dynamiques
Cet exemple peut être amélioré et combiné de manières variées selon vos besoins: Vous pouvez le transformer pour agir uniquement sur des colonnes ou des lignes et maintenir l’autre paramètre fixe.
Par ailleurs vous pouvez également intégrer la fonction « .offset(x,y) » dès la première étape si cela s’avère pertinent, ce qui va réduire la zone de sélection de référence.
Lors d’un développement VBA de ce type, il est vivement conseillé de vérifier la zone qui sera finalement prise en compte à l’issue de cette manipulation. Pour cela nous vous conseillons d’utiliser une « fenêtre espion » et de demander à votre variable range de préciser son « address » : tbl.address. Ainsi vous verrez clairement ce qui est retenu
Ici nous avons utilisé la fonction « .Select », ce qui n’est pas obligatoire. Vous pouvez simplement modifier les dimensions d’un ensemble de cellules pour les utiliser dans une formule.