Nom de la feuille précédente VBA

  • Initiateur de la discussion Initiateur de la discussion CISCO
  • Date de début Date de début

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 !

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
 
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
 
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.
 
- 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
1
Affichages
125
Réponses
7
Affichages
214
Réponses
3
Affichages
674
Retour