VBA – Sélectionner (et travailler avec) des lignes et des colonnes entières – Automatiser ExcelAutomatiser Excel
Ce tutoriel va démontrer comment sélectionner et travailler avec des lignes ou des colonnes entières en VBA.
D’abord, nous couvrirons comment sélectionner des lignes et des colonnes entières, puis nous démontrerons comment manipuler des lignes et des colonnes.
Sélectionner des lignes ou des colonnes entières
Sélectionner une seule ligne
Vous pouvez sélectionner une ligne entière avec l’objet Rows comme ceci :
Rows(5).Select
Ou vous pouvez utiliser EntireRow avec les objets Range ou Cells :
Range("B5").EntireRow.Select
ou
Cells(5,1).EntireRow.Select
Vous pouvez également utiliser l’objet Range pour vous référer spécifiquement à une rangée :
Range("5:5").Select
Sélectionner une seule colonne
Au lieu de l’objet Rows, utilisez l’objet Columns pour sélectionner des colonnes. Ici, vous pouvez référencer la colonne numéro 3:
Columns(3).Select
ou la lettre « C », entourée de guillemets:
Columns("C").Select
Au lieu de EntireRow, utilisez EntireColumn avec les objets Range ou Cells pour sélectionner des colonnes entières :
Range("C5").EntireColumn.Select
ou
Cells(5,3).EntireColumn.Select
Vous pouvez également utiliser l’objet Range pour faire référence spécifiquement à une colonne :
Range("B:B").Select
Sélectionner plusieurs lignes ou colonnes
La sélection de plusieurs lignes ou colonnes fonctionne exactement de la même manière lorsque vous utilisez EntireRow ou EntireColumn :
Range("B5:D10").EntireRow.Select
ou
Range("B5:B10").EntireColumn.Select
Toutefois, lorsque vous utilisez les objets Rows ou Columns, vous devez saisir les numéros de ligne ou les lettres de colonne entre guillemets :
Rows("1:3").Select
ou
Columns("B:C").Select
Sélectionner la rangée ou la colonne ActiveCell
Pour sélectionner la rangée ou la colonne ActiveCell, vous pouvez utiliser l’une de ces lignes de code :
ActiveCell.EntireRow.Select
ou
ActiveCell.EntireColumn.Select
Sélectionner des lignes et des colonnes sur d’autres feuilles de calcul
Pour sélectionner des lignes ou des colonnes sur d’autres feuilles de calcul, vous devez d’abord sélectionner la feuille de calcul.
Sheets("Sheet2").SelectRows(3).Select
Il en va de même pour la sélection de lignes ou de colonnes dans d’autres classeurs.
Workbooks("Book6.xlsm").ActivateSheets("Sheet2").SelectRows(3).Select
Note : Vous devez activer le classeur souhaité. Contrairement à l’objet Sheets, l’objet Workbook ne possède pas de méthode Select.
La sélection des lignes et des colonnes est-elle nécessaire ?
Cependant, il n’est (presque ?) jamais nécessaire de sélectionner réellement les lignes ou les colonnes. Vous n’avez pas besoin de sélectionner une Ligne ou une Colonne afin d’interagir avec elles. Au lieu de cela, vous pouvez appliquer des méthodes ou des propriétés directement aux lignes ou aux colonnes. Les prochaines sections démontreront différentes Méthodes et Propriétés qui peuvent être appliquées.
Vous pouvez utiliser n’importe quelle méthode listée ci-dessus pour faire référence aux Lignes ou aux Colonnes.
Méthodes et propriétés des lignes & Colonnes
Supprimer des lignes ou des colonnes entières
Pour supprimer des lignes ou des colonnes, utilisez la méthode de suppression :
Rows("1:4").Delete
ou:
Columns("A:D").Delete
Insérer des lignes ou des colonnes
Utiliser la méthode d’insertion pour insérer des lignes ou des colonnes:
Rows("1:4").Insert
ou :
Columns("A:D").Insert
Copier & Coller des lignes ou des colonnes entières
Coller dans une ligne ou une colonne existante
.
Lorsque vous copiez et collez des lignes ou des colonnes entières, vous devez décider si vous voulez coller sur une ligne / colonne existante ou si vous voulez insérer une nouvelle ligne / colonne pour coller vos données.
Ces premiers exemples vont copier et coller par-dessus une ligne ou une colonne existante :
Range("1:1").Copy Range("5:5")
ou
Range("C:C").Copy Range("E:E")
Insérer & Coller
Ces exemples suivants vont coller dans une ligne ou une colonne nouvellement insérée.
Ceci copiera la ligne 1 et l’insérera dans la ligne 5, décalant les lignes existantes vers le bas :
Range("1:1").CopyRange("5:5").Insert
Ceci copiera la colonne C et l’insérera dans la colonne E, décalant les colonnes existantes vers la droite :
Range("C:C").CopyRange("E:E").Insert
Cacher / Décacher les lignes et les colonnes
Pour cacher des lignes ou des colonnes, définissez leurs propriétés cachées sur True. Utilisez False pour masquer les lignes ou les colonnes:
'Hide RowsRows("2:3").EntireRow.Hidden = True'Unhide RowsRows("2:3").EntireRow.Hidden = False
ou
'Hide ColumnsColumns("B:C").EntireColumn.Hidden = True'Unhide ColumnsColumns("B:C").EntireColumn.Hidden = False
Grouper / Dégrouper les lignes et les colonnes
Si vous voulez grouper des lignes (ou des colonnes), utilisez un code comme celui-ci :
'Group RowsRows("3:5").Group'Group ColumnsColumns("C:D").Group
Pour supprimer le regroupement, utilisez ce code :
'Ungroup RowsRows("3:5").Ungroup'Ungroup ColumnsColumns("C:D").Ungroup
Ceci développera tous les niveaux de contour « groupés » :
ActiveSheet.Outline.ShowLevels RowLevels:=8, ColumnLevels:=8
et ceci réduira tous les niveaux de contour :
ActiveSheet.Outline.ShowLevels RowLevels:=1, ColumnLevels:=1
Définir la hauteur de ligne ou la largeur de colonne
Pour définir la largeur de colonne, utilisez cette ligne de code :
Columns("A:E").ColumnWidth = 30
Pour définir la hauteur de ligne, utilisez cette ligne de code :
Rows("1:1").RowHeight = 30
Autofit Row Height / Column Width
To Autofit a column:
Columns("A:B").Autofit
To Autofit a row :
Rows("1:2").Autofit
Les lignes et les colonnes d’autres feuilles de calcul ou classeurs
Pour interagir avec les lignes et les colonnes d’autres feuilles de calcul, vous devez définir l’objet Sheets :
Sheets("Sheet2").Rows(3).Insert
De même, pour interagir avec les lignes et les colonnes d’autres classeurs, vous devez également définir l’objet Classeur :
Workbooks("book1.xlsm").Sheets("Sheet2").Rows(3).Insert
Get Active Row or Column
Pour obtenir la ligne ou la colonne active, vous pouvez utiliser les propriétés Row et Column de l’objet ActiveCell.
MsgBox ActiveCell.Row
ou
MsgBox ActiveCell.Column
Cela fonctionne également avec l’objet Range:
MsgBox Range("B3").Column
.