Executer macro sur onglet actif

SwimCoachNico79

XLDnaute Occasionnel
Bonsoir à tous,
J'ai un classeur avec 39 onglets dont 37 sont identiques (le premier et le dernier sont différents).
Le dernier = fiche originale qui est nommée "Vide"

J'ai crée cette macro

Sub Suppr()
'
' Suppr Macro
' Supprime les données et colle la feuille originale
'

'
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("Vide").Select
Range("A8:M707").Select
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("Dames").Select
ActiveSheet.Paste
Range("A1").Select
Sheets(".").Select
Application.Run "'Fichier CMJ.xlsm'!Relance"
End Sub

Mon soucis est qu'elle ne fonction que dans l'onglet "Dames".
Comment faire pour que cette macro puisse s’exécuter sur l'onglet actif (sans s’exécuter en même temps sur les autres).
Elle est déclenchée par une image.

Merci de votre aide.
SCN79
 

Roland_M

XLDnaute Barbatruc
Re : Executer macro sur onglet actif

bonsoir,

si c'est uniquement l'onglet actif il faut se servir de activesheet.name
au début de la macro il faut saisir la feuille active !
FeuilActive$= Activesheet.Name

si j'ai bien compris !?
 

SwimCoachNico79

XLDnaute Occasionnel
Re : Executer macro sur onglet actif

L'onglet actif est variable.
Dans ma macro il correspond à la ligne en rouge :

Sub Suppr()
'
' Suppr Macro
' Supprime les données et colle la feuille originale
'

'
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("Vide").Select
Range("A8:M707").Select
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("Dames").Select
ActiveSheet.Paste
Range("A1").Select
Sheets(".").Select
Application.Run "'Fichier CMJ.xlsm'!Relance"
End Sub

Je souhaite exécuter la même macro selon l'onglet où je me trouve. Dans ma macro il s'agit toujours de "Dames" même si je suis dans un autre onglet.
 

Roland_M

XLDnaute Barbatruc
Re : Executer macro sur onglet actif

re

voir si c'est ceci que tu cherches, car ton explication n'est claire !?
Code:
Sub Suppr()
'
' Suppr Macro
' Supprime les données et colle la feuille originale
'
'
FeuilActive$ = ActiveSheet.Name '<<< svg feuil active
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("Vide").Select
Range("A8:M707").Select
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets(FeuilActive$).Select '<<< reselect la feuille active du début !
ActiveSheet.Paste
Range("A1").Select
Sheets(".").Select
Application.Run "'Fichier CMJ.xlsm'!Relance"
End Sub
 

Statistiques des forums

Discussions
312 416
Messages
2 088 247
Membres
103 784
dernier inscrit
Métro-logue