VBA : Comment insérer une ligne avec formatage
Vous pouvez utiliser la syntaxe suivante dans VBA pour insérer une ligne ayant le même format que la ligne située au-dessus :
Sub insertRowWithFormatting()
ActiveCell.Offset(1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrAbove
ActiveCell.EntireRow.Copy
ActiveCell.Offset(1).EntireRow.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End Sub
Cette macro particulière insérera une ligne sous la cellule actuellement sélectionnée avec exactement le même formatage que les cellules de la ligne actuellement sélectionnée.
Remarque : La ligne Application.CutCopyMode = False précise que le mode couper et copier doit être désactivé après l’exécution de la macro.
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Connexe : Comment insérer plusieurs lignes à l’aide de VBA
Exemple : Insérer une ligne avec formatage dans VBA
Supposons que nous ayons l’ensemble de données suivant dans Excel qui contient des informations sur divers joueurs de basket-ball :
Supposons que nous souhaitions insérer une ligne sous la ligne 2 avec exactement le même formatage.
Nous pouvons créer la macro suivante pour ce faire :
Sub insertRowWithFormatting()
ActiveCell.Offset(1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrAbove
ActiveCell.EntireRow.Copy
ActiveCell.Offset(1).EntireRow.PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End Sub
Nous pouvons ensuite sélectionner la cellule A2 puis exécuter cette macro.
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
Notez que la nouvelle ligne que nous avons insérée a exactement le même format que les cellules de la ligne 2, y compris les couleurs des cellules et la bordure.
Notez également que toutes les autres lignes de l’ensemble de données existant ont simplement été repoussées vers le bas.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :
VBA : Comment trouver la dernière ligne utilisée
VBA : Comment compter le nombre de lignes dans la plage
VBA : Comment compter le nombre de colonnes utilisées