Microsoft 365 exécuter un code en quittant une feuille

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,
 

mapomme

XLDnaute Barbatruc
Supporter XLD
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

  • arthour973- désigner feuille deactivate- v1.xlsm
    13.6 KB · Affichages: 6
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
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:

laurent950

XLDnaute Accro
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:

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG