Bonjour,
Je suis débutante en macro. Voici mon problème: J'ai créée une macro me permettant de rajouter une ligne à l'endroit sélectionné en recopiant la cellule du dessus et en effaçant les données de cette dernière (rajout fait dans deux feuilles, 1:mes données, 2:ma gestion de cellules liées). Cependant, les lignes de dessus (dans la feuille de données) comportent des cases à cocher et lors de l'ajout de ligne, la case est copié en dessous mais la cellule liée reste la même que celle du dessus. J'aimerais donc rajouter à la fin de mon code, quelque chose qui me permettrait de décaler la cellule liée en dessous de celle copiée. J'espère être assez claire, j'ai fait le tour des forums et pas de solutions trouvées. Voici le code d'ajout de ligne:
Je suis débutante en macro. Voici mon problème: J'ai créée une macro me permettant de rajouter une ligne à l'endroit sélectionné en recopiant la cellule du dessus et en effaçant les données de cette dernière (rajout fait dans deux feuilles, 1:mes données, 2:ma gestion de cellules liées). Cependant, les lignes de dessus (dans la feuille de données) comportent des cases à cocher et lors de l'ajout de ligne, la case est copié en dessous mais la cellule liée reste la même que celle du dessus. J'aimerais donc rajouter à la fin de mon code, quelque chose qui me permettrait de décaler la cellule liée en dessous de celle copiée. J'espère être assez claire, j'ai fait le tour des forums et pas de solutions trouvées. Voici le code d'ajout de ligne:
VB:
Sub Ajout_ligne()
Application.ScreenUpdating = False
' Ajout d'une ligne dans la feuille Choix matériaux et Gestions_macros
Sheets("Choix matériaux").Select
'faire une nouvelle ligne
ActiveCell.EntireRow.Insert Shift:=xlDown
'copier la ligne du dessus
ActiveCell.Offset(-1, 0).EntireRow.Copy Cells(ActiveCell.Row, 1)
On Error Resume Next
'effacer le contenu de la nouvelle ligne mais garder la forme
ActiveCell.EntireRow.ClearContents
Sheets("Gestion_macros").Select
'faire une nouvelle ligne
ActiveCell.EntireRow.Insert Shift:=xlDown
'copier la ligne du dessus
ActiveCell.Offset(-1, 0).EntireRow.Copy Cells(ActiveCell.Row, 1)
On Error Resume Next
'effacer le contenu de la nouvelle ligne mais garder la forme
ActiveCell.EntireRow.ClearContents
Sheets("Choix matériaux").Activate
End Sub