revenir à la feuille active après macro sur une autre feuille

D

Didou

Guest
Bonsoir le forum,

Je cherche un moyen pour revenir sur une feuille de mon classeur( Depuis n'importe laquelle) après avoir exécuté une macro sur la feuille(2).
la méthode ActiveSheet.paste ne fonctionne pas .
Par avance merci
Didou
 
D

Didou

Guest
Bonsoir REY et merci pour ton aide,
Je pense que je me suis mal fait comprendre, "le nom de ta feuille.xls" peut être n'importe quelle feuille de mon classeur et je voudrais revenir à la feuille depuis laquelle je lance ma procédure.
Didou
 
D

Didou

Guest
Bonsoir tous le monde,

Mon problème reste entier car je ne sais pas comment sortir le nom de la feuille où je travaille pour appliquer la méthode de STéphane que je remercie au passage pour la solution qu'il a envoyé.
Cette méthode irait trés bien si mes feuilles étaient figées, mais dans nom classeur, l'utilisateur peut en créer de nouvelles. il faut donc que ma procédure soit valable depuis toutes les feuilles.
Voilà j'espére que qelqu'un a une solution.

Didou
 
V

Vériland

Guest
Bonsoir ce fil et toi le Forum,

D'après ce que je crois comprendre à ta question, il faudrait effectuer une boucle sur l'ensemble des feuilles qui sont dans le fichier...

on peut le faire de cette manière...

Dim WS As Worksheet

For Each WS In Worksheets
...ta procédure
Next WS


le principe est simple....on déclare WS comme feuille puis on effectue une boucle (For Each) sur l'ensemble des feuilles du classeur...(Worksheets au pluriel)

entre cette boucle tu définies une condition qui s'appliquerait ainsi partout...même sur de nouvelles feuilles insérées...

A+Veriland.gif
 
L

LaurentTBT

Guest
Bonsoir à tous.

En relisant finement le premier message, j'ai cru comprendre que la macro était déclenchée en feuille 2.

Donc l'utilisateur serait sur une feuille n, puis va sur la feuille 2, déclenche la macro, et à l'issue, doit se retrouver en feuille n.

Si c'est bien cela que tu veux:

1 - dans un module, tu déclares une variable public:
Public AncienneFeuille As String

2- dans la feuille "ThisWorkbook", tu mets:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name <> "Feuil2" Then AncienneFeuille = Sh.Name
End Sub(Remplacer éventuellement "Feuil2" par le nom de la feuille 2)

Cela enregistre la dernière feuille active, même si il y a rajout ou suppression d'autres feuilles

3- Enfin, à la fin de la macro de la feuille 2, tu ajoutes:
Worksheets(AncienneFeuille).Activate

Voilà, si j'ai bien compris ton problème (ce qui n'est pas sûr du tout), cela devrait marcher.

Bonne soirée.
Laurent.
 

Pièces jointes

  • ActivationAncienneFeuille.zip
    11 KB · Affichages: 249
  • ActivationAncienneFeuille.zip
    11 KB · Affichages: 241
  • ActivationAncienneFeuille.zip
    11 KB · Affichages: 262
D

Didou

Guest
Bonsoir LaurentTBT,
c'est exactement ce que je cherche mais je me suis mal fait comprendre.
Je préparais un fichier et quand je l'ai chargé sur le forum je me suis aperçu qu'il y avait une réponce supplémentaire. Merci.
Par contre cela fait 2 fois que j'essaye d'envoyer un fichier sans succés?
Bonne soirée à tous.
Didou
 
L

LaurentTBT

Guest
Re-bonsoir Didou et tout le forum.

Heureux d'avoir finalement compris ton problème.

Pour ce qui est des pièces jointes:
1- Le forum n'accepte maintenant que les fichiers zippés
2 - max 50 ko
3 - pas de caractères spéciaux dans le nom.

Parfois, des pièces jointes ont bien été envoyées, mais disparaissent de la présentation du sujet sur le forum.

Bonne soirée.

Laurent.
 
D

Didou

Guest
A LaurentTBT et à tous les participants

Effectivement mon classeur n'était pas zippé.
j'ai testé ton exemple et il correspond tout juste à ce que je cherchais.

Cela fait maintenant quelques temps que je fréquente réguliérement ce forum, il est fréquent de récupérer de trés bonnes infos.
Félicitation à tous pour le partage de votre savoir et l'aide que vous nous donner gracieusement.

Didou
 

Discussions similaires

Statistiques des forums

Discussions
314 017
Messages
2 104 568
Membres
109 081
dernier inscrit
Vio21