Nom de l'onglet precedent lors de changement VBA

Bonjour à tous,

Je souhaiterai recuperer le nom de l'onglet que je viens de quitter avec une macro qui se lance sur changement d'onglet. D'ans l'exemple ci dessous, le test se fait sur l'onglet d'arrivée et donne un message different en fonction. Je souhaiterai le faire sur l'onglet de départ.

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

Set a = ThisWorkbook.Worksheets("Feuil1")

Set b = ThisWorkbook.Worksheets("Feuil2")

Set c = ThisWorkbook.Worksheets("Feuil3")

If ActiveSheet.Name = a.Name Then

MsgBox "un"

ElseIf ActiveSheet.Name = b.Name Then

MsgBox "deux"

ElseIf ActiveSheet.Name = c.Name Then

MsgBox "trois"

End If

End Sub

Merci pour vos conseils

Bonsoir,

pour votre code montré ici je pense qu'il y a moyen de faire plus simple.

Sinon pour votre question, voir le fichier ci :

15d-ou-je-viens.xlsm (21.03 Ko)

Le code :

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    MsgBox ("vous arrivez de " & Sh.Name)
End Sub

Le code utilise la particularité des codes mis dans "ThisWorkbook" :

ils fonctionnent avec toutes les feuilles ce qui évite de multiplier les codes sur chaque feuille.

Il utilise la fonction Desactivate, qui donne en paramètre "Sh" l'objet feuille qui vient d'être désactivée.

Il suffit donc d'un MSGBOX qui donne le nom de cette feuille par Sh.Name.

@ bientôt

LouReeD

Bonjour,

C'est parfait, merci beaucoup @LouReed (et merci pour la musique )

Mathieu

Bonjour,

merci de vos remerciements !

Et pour la musique, hélas, je n'en fais pas tout comme "lui" maintenant...

@ bientôt

LouReeD

Rechercher des sujets similaires à "nom onglet precedent lors changement vba"