Microsoft 365 Tri sur feuille protégée

Roseline

XLDnaute Occasionnel
Bonjour,
Je cherche le moyen de trier les colonnes de ma feuille même si elle est protégée. J'ai fait des recherches mais je n'y arrive pas.
Ce que je désire c'est qu'en cliquant sur le haut de n'importe quelle colonne le tri se fait automatiquement de A à Z ou l'inverse.
J'ai mis un fichier en pièce jointe et la VBA que j'ai faite mais qui me donne toujours un message d'erreur.
Merci de m'aide et je vous souhaite une excellente journée.
 

Pièces jointes

  • Tri sur feuille protégée.xlsm
    17.7 KB · Affichages: 4
Solution
Hello

la seule solution, c'est d'enlever la protection, faire le tri et remettre la proctection

VB:
Private Sub TriS(i)

ActiveSheet.Unprotect Password:="1234" 'on enlève la protection
With ActiveSheet.ListObjects("Tableau1") 'on travaille sur la table strucuturée
    .Sort.SortFields.Clear 'on supprime les tris actifs
    Set Zone = .DataBodyRange(1, i).Resize(.ListRows.Count) 'on défini la zone
    .Sort.SortFields.Add2 Key:=Zone, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 'on définit le tri
    With .Sort 'on applique le tri
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End With
    ActiveSheet.Protect...

vgendron

XLDnaute Barbatruc
Hello

la seule solution, c'est d'enlever la protection, faire le tri et remettre la proctection

VB:
Private Sub TriS(i)

ActiveSheet.Unprotect Password:="1234" 'on enlève la protection
With ActiveSheet.ListObjects("Tableau1") 'on travaille sur la table strucuturée
    .Sort.SortFields.Clear 'on supprime les tris actifs
    Set Zone = .DataBodyRange(1, i).Resize(.ListRows.Count) 'on défini la zone
    .Sort.SortFields.Add2 Key:=Zone, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 'on définit le tri
    With .Sort 'on applique le tri
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End With
    ActiveSheet.Protect Password:="1234", UserInterfaceOnly:=True 'on remet la protection
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Protect Password:="1234", UserInterfaceOnly:=True
If Target.Row = 1 And Target.Column < 10 Then
   TriS Target.Column
End If
End Sub
 

Roseline

XLDnaute Occasionnel
Hello

la seule solution, c'est d'enlever la protection, faire le tri et remettre la proctection

VB:
Private Sub TriS(i)

ActiveSheet.Unprotect Password:="1234" 'on enlève la protection
With ActiveSheet.ListObjects("Tableau1") 'on travaille sur la table strucuturée
    .Sort.SortFields.Clear 'on supprime les tris actifs
    Set Zone = .DataBodyRange(1, i).Resize(.ListRows.Count) 'on défini la zone
    .Sort.SortFields.Add2 Key:=Zone, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 'on définit le tri
    With .Sort 'on applique le tri
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End With
    ActiveSheet.Protect Password:="1234", UserInterfaceOnly:=True 'on remet la protection
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Protect Password:="1234", UserInterfaceOnly:=True
If Target.Row = 1 And Target.Column < 10 Then
   TriS Target.Column
End If
End Sub
Bonjour vgendron,
Merci pour ta réponse bien rapide. J'ai appliqué ton code à mon fichier original et tout fonctionne parfaitement comme je le voulais.
Si je voulais laisser l'option également de filtrer, comment je peux ajouter le tout à la VBA aussi?
Merci encore une fois de ta précieuse aide.
 

Phil69970

XLDnaute Barbatruc
Bonjour à tous les deux

@Roseline

Je te propose ce fichier
Le tri se fait automatiquement sur clic droit de la souris suivant la colonne que tu cliques
Exemple :
Tu cliques sur le bouton droit de la souris sur A1 le tri est descendant
Tu recliques sur le bouton droit de la souris sur A1 le tri est ascendant
Tu cliques sur le bouton droit de la souris droit sur B1 le tri est descendant
Tu recliques sur le bouton droit de la souris sur B1 le tri est ascendant .....
Cela fonctionne sur les colonnes colorées A1 à J1

Merci de ton retour

@Phil69970
 

Pièces jointes

  • Tri sur feuille protégée V1.xlsm
    18.4 KB · Affichages: 8

Roseline

XLDnaute Occasionnel
Bonjour à tous les deux

@Roseline

Je te propose ce fichier
Le tri se fait automatiquement sur clic droit de la souris suivant la colonne que tu cliques
Exemple :
Tu cliques sur le bouton droit de la souris sur A1 le tri est descendant
Tu recliques sur le bouton droit de la souris sur A1 le tri est ascendant
Tu cliques sur le bouton droit de la souris droit sur B1 le tri est descendant
Tu recliques sur le bouton droit de la souris sur B1 le tri est ascendant .....
Cela fonctionne sur les colonnes colorées A1 à J1

Merci de ton retour

@Phil69970
Ho là la que j'aime cela. Sérieux c'est vraiment super et j'adore l'option du tri ascendant ou descendant sur simple clic. Je n'en demandais pas autant mais avec cela c'est juste parfait en tout point.
Merci merci pour ton aide et passe une excellente journée.
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 267
Membres
103 168
dernier inscrit
isidore33