Nom de la feuille précédente VBA

CISCO

XLDnaute Barbatruc
Bonjour à tous

J'utilise un fichier comportant plusieurs feuilles. Dans la pratique, j'effectue divers changements dans une feuille, par exemple, la feuille "toto". J'ai une macro qui fait diverses choses, en utilisant le nom "toto" et des informations provenant de cette feuille.

J'aimerai que cette macro soit lancée automatiquement lorsque je sélectionne une autre feuille, "titi" par ex, donc après avoir fait tous les changements nécessaires sur la feuille "toto".

J'ai essayé avec
Private Sub Workbook_Sheetactivate(ByVal Sh As Object)
ou avec
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
dans Thisworkbook.

Cela ne fait pas exactement ce que je veux car la macro utilise le nom de la nouvelle feuille, "titi", et pas le nom de la feuille précédente, "toto".

Autrement dit, comment faire, lorsqu'on sélectionne un nouvel onglet, pour connaître le nom de l'onglet précédent, le choix des onglets pouvant être fait dans n'importe quel ordre (ni forcément dans l'ordre, de gauche à droite, ni en suivant les codenames, Feuil1, Feuil2 et ainsi de suite).

Bien sûr, la macro doit aussi fonctionner avec la feuille "titi" et les informations contenues sur cette feuille, lorsqu'on sélectionne ensuite une autre feuille "mickey". Et ainsi de suite, avec les données de "mickey" lorsqu'on sélectionne une autre feuille.

Je ne met pas de pièce jointe, car ce qui compte ici, ce n'est pas le contenu de ces diverses feuilles, mais leur nom, "toto", "titi", "mickey", par exemple.

D'avance merci.

@ plus
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Dans un module standard je mettrais
VB:
Public WshPréc As Worksheet
Dans ThisWorkbook:
VB:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Set WShPréc = Sh
End Sub
Comme ça on peut accéder n'importe quand après à WshPréc et notammant à WshPréc.Name
 

CISCO

XLDnaute Barbatruc
Bonjour à tous, bonjour Robert, Job75, Pierrejean et Dranreb

Merci à tous pour vos réponses. Effectivement, cela fonctionne avec Private Sub Workbook_SheetDeactivate(ByVal Sh As Object). Pourtant, j'avais fait plusieurs essais... Grrrr.

Au plaisir.
 

Discussions similaires

Statistiques des forums

Discussions
312 247
Messages
2 086 590
Membres
103 247
dernier inscrit
bottxok