Reproduire macro sur ensemble des onglets

Bonjour,

Récemment j'ai eu un problème sur un fichier, dont j'avais exposé le problème sur ce forum, mais ça me prendrai trop de temps de le retravailler du coup j'ai trouvé une solution palliative.

En recherchant sur le net j'ai trouvé le fichier en PJ.

Cette méthode me plaît et me permet d'éviter de protéger mon classeur.

J'ai également rajouté dessus la condition que si dans l'onglet "Table" est indiqué un certain mot en case 1 (ici "test") la macro n'est pas activé. Ce qui me sert de mot de passe finalement et me permet de modifier les plages.

Mais j'aimerai maintenant pouvoir utiliser cette macro sur les feuil2 et feuil3 uniquement (mais sur mon fichier j'aurai 50 onglets avec le même début de nom) , tout en conservant la case de mot de passe sur l'onglet "Table".

J'ai tenté de la mettre sur thisworkbook, sans succès.

Pourriez-vous svp m'aider?

Merci par avance,

Soit tu copies dans toutes tes feuilles la macro...

Soit tu crees une macro toto en lui donnant en argument le nom du classeur et le target

Sub toto()
If Range("a1") <> "test" Then
If Not Intersect(Range("C7:E500,M7:M500,R7:R500,T7:T500"), Target) Is Nothing Then
  Target.Offset(0, 1).Select
End If
End If
End Sub

Et tu mets dans toutes les feuilles

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call toto(nom,adress)
End Sub

Comme ça en changeant une macro tu les changeras toutes

Bonjour

Une autre solution

Aucune autre macro à part celle-ci dans le module ThisWorkbook

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  If Range("a1") <> "test" Then
    If Not Intersect(Range("C7:E500,M7:M500,R7:R500,T7:T500"), Target) Is Nothing Then
      Target.Offset(0, 1).Select
    End If
  End If
End Sub

Tu m'apprends quelque chose Banzai... Je n'avais pas fait gaffe qu'il y avait cet événement et m'amusait à dupliquer mes macros

Alors avant tout, merci à vous deux !

Pour le coup je n'ai testé que la solution de banzai64 que je tentais de faire par moi-même sans succès !

Mon erreur provenait que je ne citais pas dans le titre "sh".

Malgré tout j'y ai apporté les deux modifications pour répondre à mon besoin que tu avais omis, afin que si d'autres personnes passe sur ce fil voit la réponse au complet.

Je ne souhaite que le "mot de passe" ne soit présent que sur la Table

Et que la macro ne s’exécute que sur la chaîne d'onglet qui suit:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  If Sheets("Table").Range("a1") <> "test" Then

    If Sh.Name Like ("Feuil*") Then

    If Not Intersect(Range("C7:E500,M7:M500,R7:R500,T7:T500"), Target) Is Nothing Then
      Target.Offset(0, 1).Select
    End If
  End If
End Sub

Encore merci à vous deux pour la rapidité de réponse!

Rechercher des sujets similaires à "reproduire macro ensemble onglets"