Ré-Activation de feuille à nom variable dans une macro

Bonjour,

Voilà mon problème :

J'ai un fichier Excel de plusieurs feuilles (là, j'en ai enlevé pour que ça soit plus clair) dont chacune d'entre-elle contient en cellule B2 le nom qui s'affichera ensuite dans l'onglet. J'ai fait ceci comme ça :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("B2")) Is Nothing Then

ActiveSheet.Name = Range("B2")

End If

End Sub

Toutes les feuilles sauf la feuille comparaison changent de nom. Le nom "comparaison" est fixe.

J'ai fait une macro qui doit nettoyer les données que j'entre dans les feuilles (par un copier/coller). Cette macro est appelée depuis n'importe quelle feuille et à la fin du nettoyage, le curseur doit revenir en A3.

Cela a fonctionné jusqu'à ce que j'ajoute au milieu de la macro des actions sur la feuille "comparaison" car à ce moment là, à la fin de la macro je me retrouve sur la feuille comparaison et pas sur celle qui a lancé la macro.

Comment fait-on pour mettre en mémoire la feuille qui lance la macro de manière à pouvoir la remettre active à la fin et se retrouver en A3 de la feuille qui a lancé.

Ça ne doit pas être très compliqué, mais je débute en VBA et je n'y arrive pas.

Nota : dans le fichier joint, les données ont été collées dans la première feuille... il faut cliquer sur le bouton "1) Nettoyer" pour voir ce qui se passe.

merci,

Christophe

31fichier-1.xlsm (91.62 Ko)

Bonjour

Christophe79 a écrit :

Comment fait-on pour mettre en mémoire la feuille qui lance la macro de manière à pouvoir la remettre active à la fin

Si c'est juste ton problème

essayes

Sub test()
Dim Ws As Worksheet

  Set Ws = ActiveSheet
  '
  ' ta macro
  '
  Ws.Select
End Sub

Merci

Rechercher des sujets similaires à "activation feuille nom variable macro"