Verrouillage de la feuille en VBA avec fonction Tri

Med30

XLDnaute Nouveau
Bonjour,

Je suis en train de finaliser mon userform, il ne me manque que quelques ajustement de protection ici et là.
J'ai ajouter une macro ("Actualiser" sur la feuille 2 ("Résumé") pour actualiser via un clic la page qui reprend en plus simplifiés les données de ma feuille1 (dans laquelle le userform est saisi). Comme tout doit être verrouillé, j'ajoute des codes à cet effet dans chaque macro avec mon mot de passe (avec le code, la feuille se déverrouille pour actualiser et se reverrouille automatiquement). Le problème est que sur cette feuille, les utilisateurs doivent pouvoir conserver la fonction Tri même avec la protection. En verrouillant la feuille manuellement il suffirait de cocher cette option lors du verrouillage, mais en terme de code, je ne sais pas comment l'exprimer... Il doit y avoir quelque chose à ajouter à la suite de la ligne : .Unprotect Password:="MDP".

Merci par avance !

Voici le code:

Sub Actualiser()
'
' Actualiser Macro
'

'
With Sheets("Résumé")
.Unprotect Password:="MDP"
Range("A4:L4").Select
Selection.AutoFill Destination:=Range("A4:L1507"), Type:=xlFillDefault
Range("A4:L1507").Select
Range("C15").Select
.Protect Password:="MDP"

End With
End Sub
 

youky(BJ)

XLDnaute Barbatruc
Bonjour,
Un exemple ici explication
userinterfaceonly permet à la macro d'écrire même si protéger, Formatingcells c'est format de cellules et ce qui t'intéresse est AllowFiltering
Bruno

.Protect Contents:=True, Password:="MDP", userInterfaceOnly:=True, AllowFormattingCells:=True, AllowFormattingRows:=True, AllowFiltering:=True
 

Med30

XLDnaute Nouveau
Bonjour,
Un exemple ici explication
userinterfaceonly permet à la macro d'écrire même si protéger, Formatingcells c'est format de cellules et ce qui t'intéresse est AllowFiltering
Bruno

.Protect Contents:=True, Password:="MDP", userInterfaceOnly:=True, AllowFormattingCells:=True, AllowFormattingRows:=True, AllowFiltering:=True
Merci Bruno. Je l'indique à quel niveau? Juste en dessous de l'unprotect? C'est à dire:

Sub Actualiser()
'
' Actualiser Macro
'

'
With Sheets("Résumé")
.Unprotect Password:="MDP"
.Protect Contents:=True, Password:="MDP", userInterfaceOnly:=True, AllowFormattingCells:=True, AllowFormattingRows:=True, AllowFiltering:=True
Range("A4:L4").Select
Selection.AutoFill Destination:=Range("A4:L1507"), Type:=xlFillDefault
Range("A4:L1507").Select
Range("C15").Select
.Protect Password:="MDP"

End With
End Sub
 

youky(BJ)

XLDnaute Barbatruc
je pense comme ceci,
Bruno
With Sheets("Résumé")
.Unprotect Password:="MDP"
.Range("A4:L4").AutoFill Destination:=.Range("A4:L1507"), Type:=xlFillDefault
.Range("C15").Select
.Protect Contents:=True, Password:="MDP", userInterfaceOnly:=True, AllowFormattingCells:=True, _
AllowFormattingRows:=True, AllowFiltering:=True
End With
End Sub
 

Med30

XLDnaute Nouveau
je pense comme ceci,
Bruno
With Sheets("Résumé")
.Unprotect Password:="MDP"
.Range("A4:L4").AutoFill Destination:=.Range("A4:L1507"), Type:=xlFillDefault
.Range("C15").Select
.Protect Contents:=True, Password:="MDP", userInterfaceOnly:=True, AllowFormattingCells:=True, _
AllowFormattingRows:=True, AllowFiltering:=True
End With
End Sub
En effet, c'est parfait. Merci Bruno !
 

Discussions similaires


Haut Bas