Faire suivre une macro lorsque l'on copie une feuille

Bonjour à tous,

Je suis face à un problème qui, a première vue me paraissait simple à résoudre, et pourtant je sèche...

J'ai créé une feuille "matrice" a partir de laquelle l'utilisateur rempli un certain nombre de données, et dans 2 colonnes différentes, il lui suffit de double cliquer sur la cellule pour afficher l'heure (voir code ci-dessous) :

Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Column = 7 Then Target.Value = Time

If Target.Column = 8 Then Target.Value = Time

Cancel = True

End Sub

Ce code est écrit dans la "Worksheet", ce que je souhaiterais, c'est que en créant une copie de cette feuille "matrice", ce code soit copié aussi, mais ça n'est pas le cas... Que faire ?

Voici la macro qui se déclenche en cliquant sur un bouton "créer une nouvelle journée" (qui crée une copie de la feuille matrice):

Sub CopieFeuille()

' CopieFeuille Macro

' Positionnement sur la feuille Matrice qui sera copiée tous les jours

Sheets("Matrice").Select

Cells.Select ' Sélection totale de la feuille

Selection.Copy ' Copie

ActiveSheet.Select

Range("A1").Select ' Positionnement du curseur en A1

'Lecture de la date du jour a en F2 (date du système par formule =MAINTENANT())

DateJour = Range("F2").Value

' Extraction de JJ-MM-AAAA Le nom de feuille n'accepte pas les /

JourDate = Left(DateJour, 2) & "-" & Mid(DateJour, 4, 2) & "-" & Mid(DateJour, 7, 4)

Sheets.Add , Worksheets(Worksheets.Count) ' Ajout d'une nouvelle feuille après la dernière

ActiveSheet.Paste ' Collage de la feuille copiée précédemment

ActiveSheet.Name = JourDate ' Attribution du nom de la nouvelle feuille

ActiveWindow.DisplayGridlines = False

ActiveSheet.Range("B9:M11,A1:M4,B5:C7,I5:L5").Locked = True

ActiveSheet.Protect

End Sub

Merci pour votre aide !

Bonjour,

La macro est incorporée à la feuille et sera toujours là lors d'une copie de la feuille.

Ne pas confondre copie d'une feuille et copie d'un contenu de plage de cellules !

Ta procédure est inadéquate.

    Worksheets("Matrice").Copy after:=Worksheets(Worksheets.Count)
    ActiveSheet.Name = Format(Date, "dd-mm-yyyy")

Et inutile de t'encombrer d'un code inutile...

Cordialement.

Wouaw !

Merci pour votre réponse et votre efficacité !

Ça marche parfaitement et c'est beaucoup plus clair

Bonne continuation.

Rechercher des sujets similaires à "suivre macro lorsque copie feuille"