VBA – Insérer une Ligne ou une Colonne
In this Article
Ce tutoriel montre comment utiliser VBA pour insérer des lignes et des colonnes dans Excel.
Pour insérer des lignes ou des colonnes, nous utiliserons la fonction VBA Insert (« insertion »).
Insertion d’une Seule Ligne ou Colonne
Insérer une Nouvelle Ligne
Pour insérer une seule ligne, vous pouvez utiliser l’objet Rows :
Rows(4).Insert
Ou vous pouvez utiliser l’objet Range avec l’objet EntireRow qui représente la ligne entière :
Range("b4").EntireRow.Insert
Insertion d’une Nouvelle Colonne
Comme pour l’insertion de lignes, nous pouvons utiliser l’objet Columns pour insérer une colonne :
Columns(4).Insert
Ou l’objet Range, avec l’objet EntireColumn qui représente la colonne entière:
Range("b4").EntireColumn.Insert
Insertion de Plusieurs Lignes ou Colonnes
Insertion de Lignes Multiples
Lorsque vous insérez plusieurs lignes avec l’objet Rows, vous devez entrer les lignes entre guillemets :
Rows("4:6").Insert
L’insertion de plusieurs lignes avec l’objet Range fonctionne de la même façon qu’avec une seule ligne :
Range("b4:b6").EntireRow.Insert
Insertion de Plusieurs Colonnes
Lors de l’insertion de plusieurs colonnes à l’aide de l’objet Columns, saisissez les lettres des colonnes entre guillemets :
Columns("B:D").Insert
L’insertion de plusieurs colonnes avec l’objet Range fonctionne de la même façon qu’avec une seule colonne :
Range("b4:d4").EntireColumn.Insert
Insert – Les Arguments Shift et CopyOrigin
La méthode d’insertion « Insert » comporte deux arguments facultatifs :
- Shift – Dans quelle direction déplacer les cellules
- CopyOrigin – Quelle cellule utiliser pour copier le formatage (au-dessus, au-dessous, à gauche ou à droite)
L’argument Shift n’est pas utile lors de l’insertion de lignes ou de colonnes entières. Il vous permet uniquement d’indiquer un décalage vers le bas ou vers la droite :
- xlShiftDown – Déplace les cellules vers le bas
- xlShiftToRight – Déplace les cellules vers la droite
Comme vous pouvez le constater, il n’est pas possible de se décaler vers le haut ou vers la gauche.
L’argument CopyOrigin a deux entrées potentielles :
- xlFormatFromLeftorAbove – (0) Les cellules nouvellement insérées prennent le formatage des cellules situées au-dessus ou à gauche
- xlFormatFromRightorBelow – (1) Les cellules nouvellement insérées sont formatées à partir des cellules situées en dessous ou à droite.
Voyons quelques exemples de l’argument CopyOrigin. Voici nos données initiales :
Cet exemple va insérer une ligne en reprenant le formatage de la ligne précédente.
Rows(5).Insert , xlFormatFromLeftOrAbove
Cet exemple insère une ligne en reprenant le formatage de la ligne inférieure.
Rows(5).Insert , xlFormatFromRightOrBelow
Autres Exemples d’Insertion
Insertion de Lignes ou de Colonnes Copiées
Si vous souhaitez insérer une ligne copiée, vous devez utiliser un code comme celui-ci :
Range("1:1").Copy
Range("5:5").Insert
Ici, nous copions la rangée 1 et l’insérons à la rangée 5.
Insertion de Lignes en Fonction de la Valeur de la Cellule
Cette fonction permet de parcourir une plage en boucle et d’insérer des lignes en fonction des valeurs des cellules:
Sub InsererLignesSelonValeurSpécifique()
Dim cell As Range
For Each cell In Range("b2:b20")
If cell.Value = "insérer" Then
cell.EntireRow.Insert
End If
Next cell
End Sub
Supprimer des Lignes ou des Colonnes
Pour supprimer des lignes ou des colonnes, il suffit d’utiliser la méthode Delete.
Rows(1).Delete
Range("a1").EntireRow.Delete
Columns(1).Delete
Range("a1").EntireColumn.Delete