Bonjour,
J’ai un fichier Excel(.xlsm) simplissime ; c’est une liste d’adhérents avec 3 colonnes (N°, Nom, Prénom). La feuille est protégée mais doit pouvoir être triée. Je lui ai donc ajouté deux boutons (à partir d’images) auxquels j’ai affecté les macros ci-dessous, afin de pouvoir trier la liste par nom ou par numéro.
J’ai installé le fichier sur un réseau interne et, à partir de là, des raccourcis pour y accéder sur plusieurs postes.
Tout se passe bien sur 4 postes ; mais impossible d’utiliser les macros sur 3 autres. J’ai pourtant vérifié dans les options qu’Excel accepte les macros, mais rien à faire, je prends un refus avec code 438. Le débogueur me surligne en jaune la zone que j’ai mise en italique.(cf photo jointe).
Comment se fait-il que ça marche parfaitement ici, et pas là, alors que le code est évidemment le même ?
Un grand merci d’avance à qui pourra m’expliquer et m’aider à résoudre le problème.
Sub TriParNom()
’
’ TriParNom Macro
’ Classe la liste des adhérents par nom
’
’
ActiveSheet.Unprotect
ActiveWorkbook.Worksheets(« Adherents »).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(« Adherents »).Sort.SortFields.Add2 Key:=Range( _
-
"B2:B2500"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _*
-
With ActiveWorkbook.Worksheets(« Adherents »).SortxlSortNormal*
.SetRange Range(« A1:C2500 »)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowSorting:=True
End Sub
Sub TrParNumero()
’
’ TrParNumero Macro
’ Classe la liste des adhérents par numéro
’
’
ActiveSheet.Unprotect
ActiveWorkbook.Worksheets(« Adherents »).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(« Adherents »).Sort.SortFields.Add2 Key:=Range( _
-
"A2:A2500"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _*
-
With ActiveWorkbook.Worksheets(« Adherents »).SortxlSortNormal*
.SetRange Range(« A1:C2500 »)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowSorting:=True
End Sub