Comment insérer une ligne à l’aide de VBA dans Excel ?

Dans ce tutoriel, nous allons voir comment insérer une ligne ou une colonne à l’aide d’un code VBA dans Excel. Nous explorerons également quelles sont les différentes façons d’écrire une macro pour cela.

Insérer une seule ligne à l’aide de VBA

Pour insérer une ligne à l’aide d’un code VBA, vous devez utiliser la propriété « Toute la ligne » avec la méthode « Insérer ». Avec la propriété de ligne entière, vous pouvez faire référence à la ligne entière à l’aide d’une cellule, puis y insérer une nouvelle ligne. Par défaut, il insérera une seule ligne avant la cellule que vous avez mentionnée.

insérer une seule ligne en utilisant vba
  1. Tout d’abord, spécifiez une cellule à l’aide de l’objet range.
  2. Maintenant, entrez un point (.) pour obtenir la liste des propriétés et des méthodes.
  3. Après cela, sélectionnez la propriété « Toute la ligne » ou saisissez-la.
  4. À la fin, entrez à nouveau un point (.) et sélectionnez la méthode « Insérer » ou tapez-le.
Range("A1").EntireRow.Insert

Votre code est prêt ici pour insérer une ligne. Désormais, lorsque vous exécutez ce code, il insère instantanément une nouvelle ligne avant la cellule A1.

Insérer plusieurs lignes

Il existe deux façons d’insérer plusieurs lignes dans une feuille de calcul que j’ai trouvée. La première est la même méthode d’insertion que nous avons utilisée dans l’exemple ci-dessus.

Avec cela, vous devez spécifier une plage dont le nombre est équivalent au nombre de lignes que vous souhaitez insérer. Supposons maintenant que vous souhaitiez insérer 5 lignes après, dans ce cas, vous pouvez utiliser un code comme celui-ci.

insérer plusieurs lignes

Pour être honnête, je n’ai pas trouvé cette méthode très utile car vous devez modifier la plage si vous souhaitez modifier le nombre de lignes.

Voici donc la deuxième méthode.

Dim iRow As Long
Dim iCount As Long
Dim i As Long

iCount = InputBox(Prompt:="How many rows you want to add?")
iRow = InputBox _
(Prompt:="After which row you want to add new rows? (Enter the row number")

For i = 1 To iCount
    Rows(iRow).EntireRow.Insert
Next i

Lorsque vous exécutez ce code, il vous demande d’entrer le nombre de lignes que vous souhaitez ajouter, puis le numéro de ligne où vous souhaitez ajouter toutes ces lignes. Il utilise une boucle FOR (For Next) pour boucler ce nombre de fois et insérer des lignes une par une.

Insérer des lignes en fonction des valeurs de cellule

Si vous souhaitez insérer des lignes en fonction d’une valeur de cellule , vous pouvez utiliser le code suivant.

Dim iRow As Long
Dim iCount As Long
Dim i As Long

iCount = Range("A1").Value
iRow = Range("B1").Value

For i = 1 To iCount
    Rows(iRow).EntireRow.Insert
Next i

Lorsque vous exécutez cette macro, elle prend le nombre de lignes de la cellule A1 et la ligne où vous souhaitez ajouter des lignes de la cellule B1.

Insérer une ligne sans formatage

Lorsque vous insérez une ligne où la ligne ci-dessus a une mise en forme spécifique, dans ce cas, la ligne aura également cette mise en forme automatiquement. Et la façon la plus simple de gérer cette situation est d’utiliser des formats clairs . Considérez le code suivant.

Rows(7).EntireRow.Insert
Rows(7).ClearFormats

Lorsque vous exécutez le code ci-dessus, il insère une nouvelle ligne avant la 7 ème ligne. Maintenant, que se passe-t-il, lorsque vous insérez une ligne avant la 7 ème ligne, cette nouvelle ligne devient la 7 ème ligne, puis la deuxième ligne de code efface les formats de cette ligne.

Insérer une ligne copiée

Vous pouvez également utiliser la même méthode pour copier une ligne, puis l’insérer ailleurs. Voir le code suivant.

Application.CutCopyMode = False

With Worksheets("Data")

.Rows(5).Copy
.Rows(9).Insert Shift:=xlShiftDown

End With

Application.CutCopyMode = True

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *