Microsoft 365 Liste déroulante auto-filtrante dans une feuille protégée

PatyouExcel

XLDnaute Nouveau
Bonjour à Toutes et tous,
J'ai programmé en VBA, une liste déroulante auto-filtrante pour des données.
Je l'utilise dans une autre feuille pour choisir des données dans une liste.
J'ai déclaré le format de la cellule où la liste est utilisée avec une protection de cellule déverrouillée pour permettre de choisir
  • soit en faisant défiler la liste
  • Soit en auto-filtration (je tape dans la cellule un mot et il me montre uniquement les données de la liste commençant par ce mot)
Lorsque je verrouille ma feuille, je peux faire défiler ma liste et choisir une donnée. Par contre, la fonction auto-filtrante ne fonctionne plus.

Quelqu'un (e) aurait-elle (il), une astuce pour me sortir de ce piège ?

Merci d'avance de votre aide
 

Phil69970

XLDnaute Barbatruc
Re

Il faut juste cocher une option en plus dans la liste de la protection de la feuille

1624000891552.png


*Avec ton code j'ai une erreur au démarrage sur cette ligne
VB:
'Ouverture du classeur sur la feuille "Sommaire"
'Sheets("Sommaire").Activate
Que j'ai désactivé pour supprimer l'erreur

@Phil69970
 

Phil69970

XLDnaute Barbatruc
Re

VB:
Private Sub Workbook_Open()
'Affichage d'un message de bienvenu et toujours démarrer sur la page sommaire

'Déclaration de la variable date du jour
Dim DateJour As Date

'Affectation de la variable
DateJour = Now()

'*****
'Ouverture du classeur sur la feuille "Sommaire"
'Sheets("Sommaire").Activate
'Se positionner sur une cellule de stockage particulière
'Range("Q2").Select
Sheets("Sommaire").Range("A1").Select

'******

'Message de Bienvenu et aller ou pas directement à la feuille de recherche
If MsgBox("Bonjour et Bienvenu(e) dans la liste des substances allergisantes ..." & vbCrLf & "Nous sommes, aujourd'hui, le : " _
     & vbCrLf & vbTab & Chr(10) & "              " & Format(DateJour, "dddd dd mmmm yyyy") & _
     Chr(10) & Chr(10) & "Voulez-vous aller directement à la Recherche ?" _
     , vbYesNo + vbInformation, "BIENVENU") = vbYes Then
   
     '*****
     'Ouverture de la feuille "liste complète"
     'Sheets("liste complète").Activate
     Sheets("Liste complète").Select
     '*****
   
End If
   
'*****
'En modifiant une option de la liste de la protection de la feulle
'cela fonctionne donc le code que je t'ai donné ne sert à rien

''Active le mode auto-filtrant d'une liste déroulante en mode protégé
'Sheets("Liste complète").Select
'ActiveSheet.EnableAutoFilter = True
'ActiveSheet.Protect contents:=True, userInterfaceOnly:=True
'******

End Sub

Et voila le fichier

@Phil69970
 

Pièces jointes

  • BATTERIE EUROPEENNE ELARGIE ALLERGENES - TEST - 18 juin 2021 V1.xlsm
    856.4 KB · Affichages: 15

PatyouExcel

XLDnaute Nouveau
Re,

Ton fichier est en partie protégé et je n'arrive pas à trouver la liste source à ta validation des données et je sais pas si ton fichier contient des données confidentielles.


EDIT : Elle est où la la liste source ?
Etoto,
Dans mon fichier, il y a une feuille "Feuil2" qui est masquée. Il faut la démasquer, puis afficher les colonnes de A à L (masquées) qui comportent les données et le travail intermédiaire pour les listes auto-filtrantes.
Je t'envoie le fichier pleinement ouvert (trois feuilles), sans protection et colonnes cachées
 

Pièces jointes

  • BATTERIE EUROPEENNE ELARGIE ALLERGENES - TEST - 18 juin 2021.xlsm
    862.9 KB · Affichages: 3

Etoto

XLDnaute Barbatruc
Etoto,
Dans mon fichier, il y a une feuille "Feuil2" qui est masquée. Il faut la démasquer, puis afficher les colonnes de A à L (masquées) qui comportent les données et le travail intermédiaire pour les listes auto-filtrantes.
Je t'envoie le fichier pleinement ouvert (trois feuilles), sans protection et colonnes cachées
Re,

Ok malheureusement, je ne pourrais t'aider que lundi, donc j'espère que quelqu'un pourra t'aider avant moi.
 

PatyouExcel

XLDnaute Nouveau
P
Re

Il faut juste cocher une option en plus dans la liste de la protection de la feuille

Regarde la pièce jointe 1108809

*Avec ton code j'ai une erreur au démarrage sur cette ligne
VB:
'Ouverture du classeur sur la feuille "Sommaire"
'Sheets("Sommaire").Activate
Que j'ai désactivé pour supprimer l'erreur

@Phil69970
Si j'autorise les objets, n'importe qui peut bouger les logos. ce que je ne veux pas. les seules choses autorisées sont :
- Recherche de substances par NOM ou N° CAS, en utilisant les listes avec auto-filtration ou pas
- Visualiser les substances inclus dans les test mixs allergologiques
 

PatyouExcel

XLDnaute Nouveau
Re

VB:
Private Sub Workbook_Open()
'Affichage d'un message de bienvenu et toujours démarrer sur la page sommaire

'Déclaration de la variable date du jour
Dim DateJour As Date

'Affectation de la variable
DateJour = Now()

'*****
'Ouverture du classeur sur la feuille "Sommaire"
'Sheets("Sommaire").Activate
'Se positionner sur une cellule de stockage particulière
'Range("Q2").Select
Sheets("Sommaire").Range("A1").Select

'******

'Message de Bienvenu et aller ou pas directement à la feuille de recherche
If MsgBox("Bonjour et Bienvenu(e) dans la liste des substances allergisantes ..." & vbCrLf & "Nous sommes, aujourd'hui, le : " _
     & vbCrLf & vbTab & Chr(10) & "              " & Format(DateJour, "dddd dd mmmm yyyy") & _
     Chr(10) & Chr(10) & "Voulez-vous aller directement à la Recherche ?" _
     , vbYesNo + vbInformation, "BIENVENU") = vbYes Then
  
     '*****
     'Ouverture de la feuille "liste complète"
     'Sheets("liste complète").Activate
     Sheets("Liste complète").Select
     '*****
  
End If
  
'*****
'En modifiant une option de la liste de la protection de la feulle
'cela fonctionne donc le code que je t'ai donné ne sert à rien

''Active le mode auto-filtrant d'une liste déroulante en mode protégé
'Sheets("Liste complète").Select
'ActiveSheet.EnableAutoFilter = True
'ActiveSheet.Protect contents:=True, userInterfaceOnly:=True
'******

End Sub

Et voila le fichier

@Phil69970
Je suis parti de ton fichier et en protégeant à nouveau la feuille, cela ne fonctionne toujours pas
 

Phil69970

XLDnaute Barbatruc
Re

Pourtant sur le fichier que tu as fourni cela fonctionne il me semble !
Donc c'est à la transposition sur ton fichier que cela ne va pas.
-Soit tu as mal retranscris
-Soit il y a un bout de code que tu n'as pas transmis qui bloque et alors un fichier plus proche de la réalité est nécessaire

Je suis parti de ton fichier et en protégeant à nouveau la feuille,
Il me semble que le fichier transmis est protégé

EDIT
Quand j'ai écris mon post je n'avais pas vu ta dernière réponse


@Phil69970
 

PatyouExcel

XLDnaute Nouveau
Phil69970,

La feuille protégée fonctionne parce que dans les options de protection, la modification d'objets est autorisée.
Mais je ne veux, absolument, pas que l'utilisateur déplace les logos et autres (pas question de changer la mise en forme de la feuille par l'utilisateur). Donc cette option ne doit pas être prise en compte.
 

Discussions similaires

Statistiques des forums

Discussions
312 092
Messages
2 085 216
Membres
102 823
dernier inscrit
Lyrix