Microsoft 365 Code modifie Feuil1 quand change de feuille

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

J'ai besoin qu'un code s'exécute quand je quitte la "Feuil1". C’est-à-dire quand je clique sur "Feuil2" ou une autre feuille.
J'ai pas mal cherché, beaucoup lu … trouvé des sujets "similaires" sur le forum, sur d'autres forums, sur le net …

J'ai relevé ce code qui fonctionne très bien :
VB:
Dim ok As Boolean
Private Sub Worksheet_Deactivate()
If ok = True Then Exit Sub
MsgBox "exécuté"
ok = True
MsgBox "pas exécuté"
ok = False
End Sub


J'ai aussi relevé 2 codes que j'ai tenté en les copiant :
dans le code de la Feuil1
dans le ThisWorkbook
Je n'arrive pas à les faire fonctionner et je ne comprends pas pourquoi !
Pourriez-vous me dire pourquoi ils ne fonctionnent pas chez moi ?
Et … cerise sur le gâteau "de Noel", voudriez-vous les corriger ?
Je joins le fichier test.
Avec mes remerciements,
Joyeux Noel,
Amicalement,
lionel,
 

Pièces jointes

  • Feuil_quitte.xlsm
    17.9 KB · Affichages: 5

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Arthour, bonjour le forum,

L'événement qui va se déclencher en sortant d'un onglet est, dans le composant de cet onglet :

VB:
Private Sub Worksheet_Deactivate()
Après, dis-nous ce que tu veux plutôt que de perdre du temps a corriger des codes relevés ici ou là...
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Robert,
Merci pour m'avoir répondu :)
J'espère plus clairement :
J'ai besoin qu'un code qui s'exécute sur la "Feuil1" quand je la quitte. C’est-à-dire quand je clique sur "Feuil2" ou une autre feuille.
VB:
Application.EnableEvents = False
Application.ScreenUpdating = False
Sheets("Feuil1").Select
Range("a2", Range("a1048576").End(xlUp)).Select
'ActiveSheet.Range("a2", Range("a2").End(xlDown).End(xlToRight)).Select
    Selection.RowHeight = 40
Application.EnableEvents = True
Application.ScreenUpdating = True

En espérant être plus clair :)
lionel,
 

Robert

XLDnaute Barbatruc
Repose en paix
Re,

Il est très étrange qu'en sortant de l'onglet Feuil1 tu sélectiones... l'onglet Feuil1 !?... La règle d'or en VBA c'est d'éviter autant que tu le peux les Select inutiles qui ne font que ralentir l'exécution du code et sont source de nombreux plantages.
Ton code corrigé :

VB:
Private Sub Worksheet_Deactivate()
Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Cells(Application.Rows.Count, "A").End(xlUp).Row).EntireRow.RowHeight = 40
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 317
Membres
102 862
dernier inscrit
Emma35400