Bonjour,
Après avoir parcouru plusieurs sujets sur le même thème, puis tenté de rédiger un code avec l'enregistreur de macro sans succès.. je sollicite votre aide pour savoir si mon projet est réalisable ou non. Dans une feuille de mon fichier, il y a un tableau dans lequel toutes les cellules sont verrouillées afin que l'utilisateur ne puisse pas modifier manuellement les données. Toutefois, je souhaiterai que chacun ait la possibilité de filtrer et/ou de trier ces données. Dans mon exemple, j'ai créé une colonne "Rang", l'objectif étant de créer un bouton permettant de mettre à jour le tri croissant sur cette colonne. Sauf qu'Excel ne permet pas le tri lorsque les cellules sont verrouillées. J'ai fait une tentative avec un code qui déverrouille les cellules, puis applique le tri et verrouille les cellules. Cependant, bien que la feuille soit verrouillée les données du tableau restent quant à elles déverrouillées et donc modifiables..
Je vous joins mon fichier, ainsi que le code.
En vous remerciant par avance pour vos retours.
Sub TRIER()
'
' TRIER Macro
'
'
ActiveSheet.Unprotect
ActiveWorkbook.Worksheets("Classement").ListObjects("Tableau23").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Classement").ListObjects("Tableau23").Sort. _
SortFields.Add Key:=Range("Tableau23[[RANG ]]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Classement").ListObjects("Tableau23").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowSorting:=True, AllowFiltering:=True
End Sub