VBA - Executer une macro sur la ligne sélectionné

Bonjour,

Voici mon problème:

J'ai un fichier avec deux feuilles. J'aimerais que lorsque j'insère une ligne, elle s'insère au même endroit dans les deux feuilles. Pour cela j'ai utilisé l'enregistreur de macro qui me donne la formule suivante:

Sub Macro1()
'
' Macro1 Macro
'

'
    Sheets(Array("CALENDRIER", "GESTION ")).Select
    Sheets("CALENDRIER").Activate
    Range("A240").Select
    Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

Du coup j'aimerais juste que la formule s'applique sur la cellule active, et non pas toujours sur A240. Je suppose qu'il suffit de changer la ligne "Range("A240").Select" mais je ne sais pas quoi mettre à la place.

Cordialement

Bonjour Orphan, bonjour le forum,

Essaie comme ça :

Sub Macro1()
Sheets(Array("CALENDRIER", "GESTION ")).Select
Sheets("CALENDRIER").Activate
ActiveCell.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

Attention ! il y a un espace à la fin dans le nom de l'onglet "GESTION ". Je ne sais pas si c'est voulu ou si c'est une erreur. Code à adapter si tu modifies...

J'ai essayé ta solution, la ligne se crée bien quand j'exécute la macro, mais seulement dans le premier onglet ! Ce qui est très étrange vu qu'ils sont affichés comme étant sélectionnés tous les deux...

Bonjour Orphan, bonjour le forum,

En effet tu as raison, je navet (dans ce cas on peut...) pas testé.

Alors en remplaçant par de la logique pure et dure :

Sub Macro1()
Dim ad As String

Sheets("CALENDRIER").Activate
ad = ActiveCell.Address
Sheets("CALENDRIER").Range(ad).EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
Sheets("GESTION ").Range(ad).EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

Merci beaucoup ThauThème, maintenant cela fonctionne !

Rechercher des sujets similaires à "vba executer macro ligne selectionne"