Microsoft 365 Tri sur feuille protégée

  • Initiateur de la discussion Initiateur de la discussion Roseline
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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...
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
 
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.
 
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

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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
493
Réponses
8
Affichages
612
Retour