Microsoft 365 exécuter un code en quittant une feuille

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bon soir à toutes et à tous,

Je bloque encore sur une procédure et malgré mes recherches et essais, je ne trouve pas.

Je suis sur la feuille "CopieAppels" et quand je clic sur un autre Feuille.
Je souhaite que le code de la feuille (ci-dessous) s'exécute :
VB:
Private Sub Worksheet_Deactivate()
Application.ScreenUpdating = True
Application.EnableEvents = False
ActiveWindow.DisplayHeadings = False
ActiveSheet.Unprotect Password:="lolo"
    Rows("2:10000").RowHeight = 40
    Range([a2], Cells(Rows.Count, "a").End(xlUp)).Select
ActiveSheet.Protect Password:="lolo", DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlNoRestrictions
ActiveWindow.DisplayHeadings = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Mais voilà, je suis déjà sur l'autre feuille et ça bug ..
Pourriez-vous me dire comment modifier mon code ?
Millionième remerciement Merci encore,
Amicalement,
lionel,
 
Re,

Mettez le code suivant dans le module de Feuil1:
VB:
Private Sub Worksheet_Deactivate()
   MsgBox ActiveSheet.Name
   MsgBox Me.Name
End Sub

  • placez vous sur Feuil1 puis sélectionnez Feuil2 ou Feuil3.
  • vous verrez que ActiveSheet désigne la feuille nouvellement sélectionnée
  • et que Me désigne la feuille (Feuil1) qu'on vient de quitter

A vous ensuite d'utiliser à bon escient ActiveSheet ou Me.

edit: bonsoir @job75 🙂
 

Pièces jointes

Dernière édition:
Bsr Gérard, Mapomme,

Voici où j'en suis :
VB:
Private Sub Worksheet_Deactivate()
Me.Application.ScreenUpdating = True
Me.Application.EnableEvents = False
'Me.ActiveWindow.DisplayHeadings = False                                 -  POUR L'INSTANT PAS REUSSI POUR CETTE LIGNE
Me.Unprotect Password:="lolo"
Me.Rows("2:60000").RowHeight = 40
'Me.ActiveSheet.Cells(Rows.Count, "a").End(xlUp)(-5).Select         .-  POUR L'INSTANT PAS REUSSI POUR CETTE LIGNE
'Me.ActiveWindow.ScrollRow = Selection.Row                               -  POUR L'INSTANT PAS REUSSI POUR CETTE LIGNE
Me.Protect Password:="lolo", DrawingObjects:=True, Contents:=True, Scenarios:=True
Me.EnableSelection = xlNoRestrictions
'Me.ActiveWindow.DisplayHeadings = True                                   -  POUR L'INSTANT PAS REUSSI POUR CETTE LIGNE
Me.Application.EnableEvents = True
Me.Application.ScreenUpdating = True
End Sub

Je continue mes recherches 🙂
lionel,
 
Dernière édition:
Bonjour,
Mot clé me
https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/me-keyword
les autres mots clé :
https://docs.microsoft.com/fr-fr/of...erence/keywords-visual-basic-for-applications

VB:
dans votre code ci-dessus :
    - Application.ScreenUpdating = True ................................................................... (doit être à false au début).
    - Me.ActiveSheet.Cells(Rows.Count, "a").End(xlUp)(-5).Select......................(s'écrit : Me.Cells(Rows.Count, "a").End(xlUp)(-5).Select)
ici :
   - Me.Cells(Rows.Count, "a").End(xlUp)(-5).Select                            
   - ActiveWindow.ScrollRow = Selection.Row
      essayer cela :
   - Application.GoTo Me.Cells(Rows.Count, "a").End(xlUp)(-5), Scroll:=True
Laurent
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
17
Affichages
939
Réponses
16
Affichages
1 K
Réponses
0
Affichages
547
Retour