Pb appel Macro et Worksheet Change

Bonjour à Tous,

Dans un fichier, je crée à l'aide d'une macro plusieurs feuilles identiques à la feuille "Ronde N°1" et renommé en Ronde N°2, Ronde N°3....

Or sur cette feuille Ronde N°1, j'ai un code Worksheet Change qui fait appel à une macro nommée "TrierClassement1" et je souhaiterais que dans ma feuille crée "Ronde N°2", ce code fasse appel à la macro "TrierClassement2", que la feuille "Ronde N°3", ce soit la macro "TrierClassement3".... etc.

Voici donc mon code pour créer les différentes feuilles :

Sub CréerOngletRondes()
Dim MaFeuille As Worksheet
For Each MaFeuille In Worksheets
MaFeuille.Unprotect Password:="50points"
Next

Dim Fe As Worksheet
    Dim Cel As Range
    Dim I As Integer
    Dim J As Integer

    'fige l'écran
    Application.ScreenUpdating = False

    'ajoute le nombre de feuilles désirées
    For I = 1 To Worksheets("Tirage Groupes").[B8] - 1

Worksheets("Ronde N°1").Copy , Sheets(Sheets.Count)

        Set Fe = ActiveSheet

        With Fe

           .Name = "Ronde N°" & Sheets.Count - 1  'nomme la feuille

           .Range("A1") = "RONDE N° " & Sheets.Count - 1 'titre
           .Shapes("Bouton 3").Visible = False

           .Shapes("Bouton 1").Select
            Selection.Characters.Text = "Passer à Ronde N°" & Sheets.Count
                With Selection.Characters(Start:=1, Length:=18).Font
                        .Name = "Arial"
                        .FontStyle = "Normal"
                        .Size = 10
                        .Strikethrough = False
                        .Superscript = False
                        .Subscript = False
                        .OutlineFont = False
                        .Shadow = False
                        .Underline = xlUnderlineStyleNone
                        .ColorIndex = xlAutomatic

                End With
        End With
        Next I

    'rafraîchi
    Application.ScreenUpdating = True

 Sheets("Ronde N°2").Visible = False
 Sheets("Ronde N°3").Visible = False
 Sheets("Ronde N°4").Visible = False
 Sheets("Ronde N°5").Visible = False
 Sheets("Ronde N°6").Visible = False
 Sheets("Ronde N°7").Visible = False
 Sheets("Ronde N°8").Visible = False
 Sheets("Ronde N°9").Visible = False
 Sheets("Ronde N°10").Visible = False

 For j = 1 To Sheets.Count
        Sheets(j).Protect Password:="50points"
     Next j
End Sub

Et mon code Worksheet Change pour la feuille "Ronde N°1" :

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim Plage As Range
  Set Plage = Union(Range("C4:C" & Range("C" & Rows.Count).End(xlUp).Row).Offset(, 2), _
                    Range("G4:G" & Range("G" & Rows.Count).End(xlUp).Row).Offset(, 2))

  If Not Intersect(Target, Plage) Is Nothing And Target.Count = 1 Then
    If Application.CountA(Plage) = Plage.Count Then
      ActiveSheet.Shapes("Bouton 1").Visible = True
      Call DeProtegeFeuilles

      Call TrierClassement1
      Call ProtegeFeuilles
    Else
      ActiveSheet.Shapes("Bouton 1").Visible = False
    End If
  End If
End Sub

Merci d'avance pour votre aide.

Youlig

Bonjour,

Ne vaudrait il pas mieux garder un tronc commun de tri et transmettre le Nom de la feuille?.

ex : Call TrierClassement (Nom_Feuille)

Cordialement.

Bonjour psdi,

Je ne crois pas cela possible car ma macro "trierClassement1" est différente de "trierClassement2".

Rechercher des sujets similaires à "appel macro worksheet change"