Lancer une Macro avant de changer d'onglet

rollingboy

XLDnaute Nouveau
Bonjour à tous,

J'ai un classeur avec 2 feuilles "projet" et "planning". La feuille planning récupère via une Macro des éléments de la feuille projet pour se mettre à jour. Cette Macro est lancée sur l'évènement Activate
Code:
Private Sub Worksheet_Activate()
planning
End Sub
Code:
Sub planning()
Dim zone As Range
   Worksheets("planning").Range("A:F").Clear
   Set zone = Application.Intersect(Worksheets("projet").UsedRange, Worksheets("projet").Range("A:F"))
   zone.Copy: Worksheets("planning").Range("A3").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False

End Sub
Ceci fonctionne correctement.
Ce que je ne parviens à mettre en place c'est de mettre à jour la feuille projet juste avant de passer sur la feuille planning.
En effet, je dois pour les besoins du autre tache dupliquer le nom du projet dans la colonne A autant de fois que j'ai une donnée dans la C. Et je voudrais afin de faciliter la vie de l'utilisateur que çà se remplisse automatiquement.

J'ai fait ceci :
Code:
Sub TEST()
Range("c65536").End(xlUp).Activate
   ligne = ActiveCell.Row
   Range("B1").Select
   Selection.Copy
   Range("A3").Select
   ActiveSheet.Paste
   Application.CutCopyMode = False
   Selection.AutoFill Destination:=Range("A3:A" & ligne)
   Range("A" & ligne).Select
    
End Sub
çà marche quand je l'exécute manuellement mais je ne sais pas dans quel évènement l'intégrer.
Sur Desactivate çà ne fonctionne pas puisque je vais boucler avec "planning"

Quelqu'un a-t-il une idée?

Merci par avance
 

rollingboy

XLDnaute Nouveau
Re : Lancer une Macro avant de changer d'onglet

Merci Wil pour ta réponse mais j'ai trouvé une autre solution qui fonctionne en l'intégrant à un autre bout de code de ma feuille quej'appelle pour un control calendar

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If (Left(ActiveCell.Address, 2) = "$D") Or (Left(ActiveCell.Address, 2) = "$E") Then
        Load Calendrier
        Calendrier.Show

End If

Range("c65536").End(xlUp).Activate
ligne = ActiveCell.Row
   Range("B1").Select
   Selection.Copy
   Range("A3").Select
   ActiveSheet.Paste
   Application.CutCopyMode = False
   Selection.AutoFill Destination:=Range("A3:A" & ligne)
   Range("D65536").End(xlUp).Activate
   
    End Sub

A bientôt
 

Discussions similaires

Statistiques des forums

Discussions
314 630
Messages
2 111 359
Membres
111 114
dernier inscrit
ADA1327