Microsoft 365 besoin d'aide sur EXCEL - créer un mot de passe pour chaque feuille.

Zizou981

XLDnaute Nouveau
Bonjour la team,

je voudrais savoir est ce c'est possible de mettre un mot de passe pour chaque liste qui se trouve sur la liste déroulante, le mot de passe doit être diffèrent de chaque liste a une autre de telle sorte a ce que lorsqu'en sélectionnant la liste a partir du menu, un mot de passe doit être demandé.

Ci-joint l'exemple.

j'espère que mon explication est claire, sinon je serai a votre disposition pour plus d'informations complémentaires.

merci d'avance et bonne journée. :) :) :) :)
 

Pièces jointes

  • Exemple.xlsx
    10.8 KB · Affichages: 13
Solution
@Zizou

voici une autre version du fichier. :)

* au départ, tu es sur la 1ère feuille "Menu"

* la cellule active est C9 ; y'a aucune formule ; va en C8 : idem ; va en C7 : idem

* va en C6, et choisis un des 3 items de la liste

* regarde aussi ce qui se passe quand tu effaces C6 (touche Suppression)



code VBA du Module de Feuil1 :

VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim mdp$, L$, cel As Range, k As Byte
  With Target
    If .CountLarge > 1 Then Exit Sub
    If .Address <> "$C$6" Then Exit Sub
    [C7:C9].ClearContents: L = .Value: If L = ""...

Zizou981

XLDnaute Nouveau
Bonjour la team,

je voudrais savoir est ce c'est possible de mettre un mot de passe pour chaque liste qui se trouve sur la liste déroulante, le mot de passe doit être diffèrent de chaque liste a une autre de telle sorte a ce que lorsqu'en sélectionnant la liste a partir du menu, un mot de passe doit être demandé.

Ci-joint l'exemple.

j'espère que mon explication est claire, sinon je serai a votre disposition pour plus d'informations complémentaires.

merci d'avance et bonne journée. :) :) :) :)
aidez moi svp 😭😭😭😭😭😭😭😭
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Zizou,

ton fichier en retour. :)

je te laisse essayer tes 2 listes déroulantes de C6 et B7.​

formule en C7 :

VB:
=SI(OU(C6="";B7="");"";INDIRECT("Feuil3!" & CAR(CODE(DROITE(C6))+3) & DROITE(B7)+1))

à te lire pour avoir ton avis. ;)

soan
 

Pièces jointes

  • Exemple.xlsx
    10.5 KB · Affichages: 6

Zizou981

XLDnaute Nouveau
Bonjour Zizou,

ton fichier en retour. :)

je te laisse essayer tes 2 listes déroulantes de C6 et B7.​

formule en C7 :

VB:
=SI(OU(C6="";B7="");"";INDIRECT("Feuil3!" & CAR(CODE(DROITE(C6))+3) & DROITE(B7)+1))

à te lire pour avoir ton avis. ;)

soan
merci beaucoup pour ta réponse et merci d'avoir eu le temps de me répondre, mais malheureusement ce n'est pas ce que je voulais.
ci-joint le fichier initial, ce que je voudrais est que dans l'onglet menu cellule C6 j'ai mis une liste déroulante la liste contient trois éléments, je souhaiterais que lorsque chaque élément choisi requière un mot de passe afin que les donnée des cellules C7:C9 apparaissent.
encore une fois merci et bonne journée.
 

Pièces jointes

  • Exemple.xlsx
    12.6 KB · Affichages: 5

soan

XLDnaute Barbatruc
Inactif
@Zizou

voici une autre version du fichier. :)

* au départ, tu es sur la 1ère feuille "Menu"

* la cellule active est C9 ; y'a aucune formule ; va en C8 : idem ; va en C7 : idem

* va en C6, et choisis un des 3 items de la liste

* regarde aussi ce qui se passe quand tu effaces C6 (touche Suppression)



code VBA du Module de Feuil1 :

VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim mdp$, L$, cel As Range, k As Byte
  With Target
    If .CountLarge > 1 Then Exit Sub
    If .Address <> "$C$6" Then Exit Sub
    [C7:C9].ClearContents: L = .Value: If L = "" Then Exit Sub
    mdp = InputBox("Veuillez saisir votre mot de passe :"): If mdp = "" Then Exit Sub
    Set cel = Worksheets("Mot de passe").Columns(1).Find(L, , -4163, 1, 1)
    If cel Is Nothing Then Exit Sub
    If mdp <> cel.Offset(, 1) Then MsgBox "Mot de passe incorrect !", 48: Exit Sub
    k = Asc(Right$(L, 1)) - 61: Application.ScreenUpdating = 0
    Worksheets("Feuil3").Cells(2, k).Resize(3).Copy: [C7].PasteSpecial -4163
    Application.CutCopyMode = 0: [C6].Select
  End With
End Sub

si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis. ;)

soan
 

Pièces jointes

  • Exemple.xlsm
    20.4 KB · Affichages: 13

Zizou981

XLDnaute Nouveau
@Zizou

voici une autre version du fichier. :)

* au départ, tu es sur la 1ère feuille "Menu"

* la cellule active est C9 ; y'a aucune formule ; va en C8 : idem ; va en C7 : idem

* va en C6, et choisis un des 3 items de la liste

* regarde aussi ce qui se passe quand tu effaces C6 (touche Suppression)



code VBA du Module de Feuil1 :

VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim mdp$, L$, cel As Range, k As Byte
  With Target
    If .CountLarge > 1 Then Exit Sub
    If .Address <> "$C$6" Then Exit Sub
    [C7:C9].ClearContents: L = .Value: If L = "" Then Exit Sub
    mdp = InputBox("Veuillez saisir votre mot de passe :"): If mdp = "" Then Exit Sub
    Set cel = Worksheets("Mot de passe").Columns(1).Find(L, , -4163, 1, 1)
    If cel Is Nothing Then Exit Sub
    If mdp <> cel.Offset(, 1) Then MsgBox "Mot de passe incorrect !", 48: Exit Sub
    k = Asc(Right$(L, 1)) - 61: Application.ScreenUpdating = 0
    Worksheets("Feuil3").Cells(2, k).Resize(3).Copy: [C7].PasteSpecial -4163
    Application.CutCopyMode = 0: [C6].Select
  End With
End Sub

si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis. ;)

soan
c'est exactement ce que je voulais, milles mercis 🙏 🙏 🙏 🙏
je vais essayer maintenant de l'adapter a mon fichier réel.
encore une fois merci beaucoup pour ton support
 

Zizou981

XLDnaute Nouveau
@Zizou

voici une autre version du fichier. :)

* au départ, tu es sur la 1ère feuille "Menu"

* la cellule active est C9 ; y'a aucune formule ; va en C8 : idem ; va en C7 : idem

* va en C6, et choisis un des 3 items de la liste

* regarde aussi ce qui se passe quand tu effaces C6 (touche Suppression)



code VBA du Module de Feuil1 :

VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim mdp$, L$, cel As Range, k As Byte
  With Target
    If .CountLarge > 1 Then Exit Sub
    If .Address <> "$C$6" Then Exit Sub
    [C7:C9].ClearContents: L = .Value: If L = "" Then Exit Sub
    mdp = InputBox("Veuillez saisir votre mot de passe :"): If mdp = "" Then Exit Sub
    Set cel = Worksheets("Mot de passe").Columns(1).Find(L, , -4163, 1, 1)
    If cel Is Nothing Then Exit Sub
    If mdp <> cel.Offset(, 1) Then MsgBox "Mot de passe incorrect !", 48: Exit Sub
    k = Asc(Right$(L, 1)) - 61: Application.ScreenUpdating = 0
    Worksheets("Feuil3").Cells(2, k).Resize(3).Copy: [C7].PasteSpecial -4163
    Application.CutCopyMode = 0: [C6].Select
  End With
End Sub

si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis. ;)

soan
bonjour soan,
ton fichier est excellent, y'a rien a dire vraiment merci.
je voudrais encore te demander une chose si c'est possible bien sur, je voudrais savoir si je pourrai utiliser juste une partie de ce code, c'est a dire ce qui m'importe le plus c'est juste le changement de nom de liste avec les mot de passe, j'ai essayé d'apporter des modifs sur le fichier que tu m'avais envoyé ce que j'ai fait :
de C7:C9 j'ai mis des formules qui ont une relation avec les listes ( Liste A, Liste B et liste C) le problème est que dés que je sélectionne une liste sur la liste déroulante et je met le mot de passe les formule disparaissent.
donc qu'est ce que je doit faire pour que les formules ne disparaissent pas et dés que je met le mot de passe de la liste concerné la formule me donne les chiffres approprier.
ci-joint le fichier exemple.
merci d'avance.
 

Pièces jointes

  • Exemple V4.xlsm
    20.1 KB · Affichages: 4

soan

XLDnaute Barbatruc
Inactif
@Zizou981

:oops: désolé pour le retard de ma réponse, j'étais occupé sur d'autres exos.

ton nouveau fichier V4 en retour ; j'ai changé qu'une seule chose :

dans le code VBA, cette ligne :

[C7:C9].ClearContents: L = .Value: If L = "" Then Exit Sub

est devenue :

L = .Value: If L = "" Then Exit Sub



donc : 1ère instruction [C7:C9].ClearContents en moins ; c'est elle qui effaçait les cellules C7 à C9 par sécurité, pour garder la confidentialité des infos affichées suite à un mot de passe correct. ;)

soan
 

Pièces jointes

  • Exemple V4.xlsm
    19 KB · Affichages: 3

Zizou981

XLDnaute Nouveau
@Zizou981

:oops: désolé pour le retard de ma réponse, j'étais occupé sur d'autres exos.

ton nouveau fichier V4 en retour ; j'ai changé qu'une seule chose :

dans le code VBA, cette ligne :

[C7:C9].ClearContents: L = .Value: If L = "" Then Exit Sub

est devenue :

L = .Value: If L = "" Then Exit Sub



donc : 1ère instruction [C7:C9].ClearContents en moins ; c'est elle qui effaçait les cellules C7 à C9 par sécurité, pour garder la confidentialité des infos affichées suite à un mot de passe correct. ;)

soan
pas de soucis, j'ai fait le test mais il y a un tout petit problème, sur la liste déroulante lorsque je choisi une liste les information de cette liste apparaissent avant que je met le mot de passe.
 

Zizou981

XLDnaute Nouveau
@Zizou981

oui, tu as raison, pour le problème que tu as mentionné.

aussi voici une autre version jointe ci-dessous.

à toi de l'essayer, et donne-moi ton avis. :)

soan
c'est presque ça, par ce que si tu remarque en basculant d'une liste a une autre les info apparaissent rapidement et disparaissent, mais bon merci comme même pour tes efforts et ta réactivité.
par ailleurs, j'ai réfléchit a une approche plus simple si tu pourra m'aidé la dessous.
en fait, j'ai besoin uniquement de la partie qui demande le mot de passe lorsque en souhaite changer la liste.
si tu pourra le faire je ne cesserai de te remercié 🙏 🙏 🙏 🙏 🙏 🙏 ;)
 

Pièces jointes

  • Exemple simplifier.xlsx
    10.8 KB · Affichages: 2

soan

XLDnaute Barbatruc
Inactif
@Zizou981

avant de voir ta nouvelle demande, je dois t'indiquer quelque chose de très important :

* en C6, choisis "Liste A", puis saisis "111" ➯ affichage de 1 ; 4 ; 7 en C7:C9.

* en C6, choisis "Liste B" ; sans saisir de mot de passe : clic sur bouton Annuler ;
C7:C9 est vide, n'est-ce pas ? oui ? eh bien non, pas tout à fait :

regarde la cellule A1, et clique sur la petite « case » du coin haut gauche, qui est juste à gauche de la lettre A et au-dessus du chiffre 1 : ça sélectionne la feuille entière ; maintenant, si tu regardes bien attentivement C7:C9, tu verras qu'il y a 2 ; 5 ; 8 écrits en blanc.

donc au lieu d'effacer C7:C9 comme je l'avais fait au début avec [C7:C9].ClearContents j'ai mis tout simplement une couleur de police de caractères blanc (couleur n° 16777615) ; puis plus tard, pour l'affichage, je mets une couleur de police de caractères noire (couleur n° 0).


je ne vois pas comment faire autrement, mais c'est arrivé car tu as mis des formules alors que moi je les avais enlevées tout à fait volontairement, pour éviter pareil inconvénient ! aussi, je te suggère de reprendre ma solution où y'avait aucune formule en C7:C9 ; c'est juste une suggestion, t'es pas obligé de la suivre, alors fais comme tu préfères. ;)

si tu reviens à une solution sans formule en C7:C9, peut-être que ta nouvelle demande de ton post #11 deviendra inutile ? ou tu préfères quand même que j'essaye de trouver quelque chose ?​

soan
 

Zizou981

XLDnaute Nouveau
@Zizou981

avant de voir ta nouvelle demande, je dois t'indiquer quelque chose de très important :

* en C6, choisis "Liste A", puis saisis "111" ➯ affichage de 1 ; 4 ; 7 en C7:C9.

* en C6, choisis "Liste B" ; sans saisir de mot de passe : clic sur bouton Annuler ;
C7:C9 est vide, n'est-ce pas ? oui ? eh bien non, pas tout à fait :

regarde la cellule A1, et clique sur la petite « case » du coin haut gauche, qui est juste à gauche de la lettre A et au-dessus du chiffre 1 : ça sélectionne la feuille entière ; maintenant, si tu regardes bien attentivement C7:C9, tu verras qu'il y a 2 ; 5 ; 8 écrits en blanc.

donc au lieu d'effacer C7:C9 comme je l'avais fait au début avec [C7:C9].ClearContents j'ai mis tout simplement une couleur de police de caractères blanc (couleur n° 16777615) ; puis plus tard, pour l'affichage, je mets une couleur de police de caractères noire (couleur n° 0).


je ne vois pas comment faire autrement, mais c'est arrivé car tu as mis des formules alors que moi je les avais enlevées tout à fait volontairement, pour éviter pareil inconvénient ! aussi, je te suggère de reprendre ma solution où y'avait aucune formule en C7:C9 ; c'est juste une suggestion, t'es pas obligé de la suivre, alors fais comme tu préfères. ;)

si tu reviens à une solution sans formule en C7:C9, peut-être que ta nouvelle demande de ton post #11 deviendra inutile ? ou tu préfères quand même que j'essaye de trouver quelque chose ?​

soan
alors en fait l'outil que je suis entrain d'élaboré contiens des donnée confidentielle et il doit être partagé a un certains nombre d'employés qui ne doivent pas avoir accès au donnée globale lise a part les leurs si tu voie ce que je veux dire, du coup je pense que la dernière requête que je t'ai envoyé me serai plus utile et me garantira surement que les utilisateurs n'aurons pas accès aux donnée sinon je serai viré de la société :D :D :D
 

Pièces jointes

  • Exemple simplifier.xlsx
    10.8 KB · Affichages: 7

Zizou981

XLDnaute Nouveau
Bonjour Zizou981,

désolé, mais je n'ai rien trouvé ; d'autre part, comme le problème initial a changé, je te suggère de faire ta nouvelle demande dans un autre sujet, le présent sujet ayant déjà été résolu par mon post #5 ; bonne chance pour la suite de ton projet ! 🍀

soan
bonjour soan,
pas de soucis, merci comme même d'avoir pris le temps de me répondre et me donner des solutions.
you are the best of the best.
bon continuation et espérons te lire dans d'autre exo ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 182
Messages
2 086 001
Membres
103 084
dernier inscrit
Hervé30120