Microsoft 365 Déprotéger un onglet en sélectionnant une valeur dans une liste déroulante

PatFr38

XLDnaute Nouveau
Bonjour, à toutes et tous.

J'ai réussi à faire en sorte que, lors de la sélection d'une cellule dans l'onglet actif, ce dernier soit déprotégé, une macro soit activée pour masquer des lignes, puis que l'onglet actif soit protégé à nouveau. Par contre, j'ai essayé plusieurs méthodes, avec Worksheet_SelectionChange et Worksheet_Change, pour tenter de faire en sorte que, lors de la sélection d'une valeur (dans mon cas, un mois de l'année) dans une liste déroulante, l'onglet actif soit déprotégé et qu'une macro soit activée pour masquer des colonnes de mois précédent le mois sélectionné. Effectivement, la solution la plus simple est de déprotéger manuellement l'onglet, mais ce n'est pas l'objectif recherché... Je vous joins un fichier d'exemple. Un grand merci d'avance à celle/celui qui pourra me trouver la bonne solution.
 

Pièces jointes

  • Exemple.xlsx
    10 KB · Affichages: 3
Solution
Bonjour, à toutes et tous.

J'ai réussi à faire en sorte que, lors de la sélection d'une cellule dans l'onglet actif, ce dernier soit déprotégé, une macro soit activée pour masquer des lignes, puis que l'onglet actif soit protégé à nouveau. Par contre, j'ai essayé plusieurs méthodes, avec Worksheet_SelectionChange et Worksheet_Change, pour tenter de faire en sorte que, lors de la sélection d'une valeur (dans mon cas, un mois de l'année) dans une liste déroulante, l'onglet actif soit déprotégé et qu'une macro soit activée pour masquer des colonnes de mois précédent le mois sélectionné. Effectivement, la solution la plus simple est de déprotéger manuellement l'onglet, mais ce n'est pas l'objectif recherché... Je vous joins un fichier...

Gégé-45550

XLDnaute Accro
Bonjour, à toutes et tous.

J'ai réussi à faire en sorte que, lors de la sélection d'une cellule dans l'onglet actif, ce dernier soit déprotégé, une macro soit activée pour masquer des lignes, puis que l'onglet actif soit protégé à nouveau. Par contre, j'ai essayé plusieurs méthodes, avec Worksheet_SelectionChange et Worksheet_Change, pour tenter de faire en sorte que, lors de la sélection d'une valeur (dans mon cas, un mois de l'année) dans une liste déroulante, l'onglet actif soit déprotégé et qu'une macro soit activée pour masquer des colonnes de mois précédent le mois sélectionné. Effectivement, la solution la plus simple est de déprotéger manuellement l'onglet, mais ce n'est pas l'objectif recherché... Je vous joins un fichier d'exemple. Un grand merci d'avance à celle/celui qui pourra me trouver la bonne solution.
Bonjour,
Une proposition :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("A4") = "Février" Then
        Columns("C:C").EntireColumn.Hidden = True
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A4")) Is Nothing Then ActiveSheet.Unprotect Else ActiveSheet.Protect
End Sub
Cordialement,
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 296
Membres
103 171
dernier inscrit
clemm