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 SubEt 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 SubMerci 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".