Exécuter un code en quittant feuil1

Signaler
Messages postés
113
Date d'inscription
mardi 14 septembre 2010
Statut
Membre
Dernière intervention
26 octobre 2014
-
bigfish_le vrai
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
-
bonjour
svp comment je peux excuter cette macro lorsque je quitte la feuil1

Sub test()
Range("F1", Range("F1").End(xlDown)).Copy
Range("E1").PasteSpecial
Columns("E:E").RemoveDuplicates Columns:=1, Header:=xlYes
End Sub

merci

2 réponses

Messages postés
95
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
28 novembre 2017

salut,

désolé mais tu peux pas quitter une feuille mais simplement en changer (passer sur une autre feuille).

sinon c'est fermer le classeur excel, et là il te faut mettre ton code dans Workbook_BeforeClose(...)

par contre, pense à spécifier dans ta procédure Test quelle feuille est la cible
(exemple : Feuil("Feuil1").Range("F1", Range("F1").End(xlDown)).Copy

bon dév.
@+, AlKatou
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

mais si il existe un événement qui permet de détecter un changement de feuille et il y en a même 2 !!!

Code à coller dans le code de ThisWorkBook
Option Explicit

Dim NouvelleFeuilleActive As Worksheet, PrecedenteFeuille As Worksheet
Private Sub Workbook_SheetActivate(ByVal Sh As Object) 'événement à l'activation de la feuille
    If Not Sh.Name "feuil1" Then Set NouvelleFeuilleActive Sh
    If PrecedenteFeuille.Name = "Feuil1" Then Call test(PrecedenteFeuille, NouvelleFeuilleActive)
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) 'événement lors de la désactivation de la feuille
    Set PrecedenteFeuille = Sh
End Sub

Sub test(ByVal PrecedenteFeuille As Worksheet, ByVal NouvelleFeuilleActive As Worksheet)
    With PrecedenteFeuille
        .Range("F1:F" & .Range("F" & .Columns("F").Rows.Count).End(xlUp).Row).Copy
    End With
    NouvelleFeuilleActive.Range("E1").PasteSpecial
    NouvelleFeuilleActive.Columns("E:E").RemoveDuplicates Columns:=1, Header:=xlYes
End Sub


A+