Mot de passe et visionnement de feuille à l'ouverture du fichier....

CyberNeo99

XLDnaute Occasionnel
Bonjour à tous,


Voici ce que je recherche, j'ai du code VBA qui me permet lors de l'ouverture du fichier Excel que si l'utilisateur va sur une feuille, une fenêtre apparaît pour demander le mot de passe, ce qui permet de visionner la feuille en question. Le problème que j'aimerais contourner est le suivant, éviter qu'à chaque fios que je vais sur la feuille en question il me demande le mot de passe, si je réussis à le mettre une fois et que je me déplace d'une feuille à l'autre il ne me redemande pas le mot de passe puisque je l'ai déjà entrer une fois. Si vous avez besoin de précision ou si vous avez des questions, ne vous gêné pas....

Je mets en pièce jointe une fichier exemple, très simple, aucune donner juste du code VBA dans ThisWorkbook.


Grand Merci à l'avance


Neo
 

Pièces jointes

  • Mot de passe pour visionner une feuille.xls
    24 KB · Affichages: 49
  • Mot de passe pour visionner une feuille.xls
    24 KB · Affichages: 51
  • Mot de passe pour visionner une feuille.xls
    24 KB · Affichages: 53

Efgé

XLDnaute Barbatruc
Re : Mot de passe et visionnement de feuille à l'ouverture du fichier....

Bonjour CyberNeo99,
Une proposition à mettre dans le ThisWorkbook
En tête du module:
VB:
Public Validation As Boolean

Ensuite remplacer Workbook_SheetActivate par :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim MyPassword As String
MyPassword = "TOTO" 'là tu choisi le mot de passe que tu souhaite appliqué a ta feuille
If Sh.Name = "Feuil3" And Validation = False Then
    Message = InputBox("Mot de passe:", "Entrer le mot de passe pour consulter la feuille")
    If Message = MyPassword Then
        Sh.Unprotect Password:=MyPassword
        Sh.Range("A1").Select
        Validation = True
        Exit Sub
    Else
        Sheets("Feuil1").Select
    End If
End If
End Sub
Cordialement

EDIT. Bonjour David84:)
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : Mot de passe et visionnement de feuille à l'ouverture du fichier....

Bonjour,
sous réserve d'avoir compris. J'ai testé comme cela et cela semble fonctionner (mais à voir de ton côté).
A+
Edit : bonjour Efgé:)
 

Pièces jointes

  • Mot de passe pour visionner une feuille.xls
    38 KB · Affichages: 55
  • Mot de passe pour visionner une feuille.xls
    38 KB · Affichages: 55
  • Mot de passe pour visionner une feuille.xls
    38 KB · Affichages: 54

Papou-net

XLDnaute Barbatruc
Re : Mot de passe et visionnement de feuille à l'ouverture du fichier....

Bonjour CyberNeo99,

Pas tout compris, mais je pense qu'en modifiant ton code ainsi tu devrais obtenir satisfaction :

Code:
Public MotPasse As String
Private Sub Workbook_Open()

ActiveWorkbook.RefreshAll
Worksheets("Feuil1").Protect Password:="TOTO"
Worksheets("Feuil2").Protect Password:="TOTO"
Worksheets("Feuil3").Protect Password:="TOTO"
MotPasse = ""
End Sub


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim MyPassword As String

MyPassword = "TOTO" 'là tu choisi le mot de passe que tu souhaite appliqué a ta feuille
If Sh.Name = ("Feuil1") Then Exit Sub
Range("A1").Select 'choisi une cellule qui est loin de ton champ de donnees
If Sh.Name = ("Feuil2") Then Exit Sub
Range("A1").Select 'choisi une cellule qui est loin de ton champ de donnees
If Not MotPasse = "" Then Exit Sub
Message = InputBox("Mot de passe:", "Entrer le mot de passe pour consulter la feuille")
If Message = MyPassword Then
  MotPasse = Message
  Sh.Unprotect Password:=MyPassword
  Sh.Range("A1").Select
  Exit Sub
  Else: Sheets("Feuil1").Select
End If
End Sub

Espérant avoir répondu.

Cordialement.

Edit : bonjour Efgé, david84
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Mot de passe et visionnement de feuille à l'ouverture du fichier....

Bonjour à tous,

Code à adapter, vu qu'avec celui-ci j'utilise un formulaire. Testé et fonctionnel.

Dans une feuille faire la liste d'Utilisateurs et Mots de Passe.

Code:
Private Sub Valider_Click()
Dim x As Long
Dim LigneVide As String
Worksheets("Liste").Activate
Me.Hide

For x = 1 To 10
If UCase(Range("J" & x)) & " " & UCase(Range("A" & x)) & UCase(Range("A" & x)) _
& " " & UCase(Range("J" & x)) Like "*" & UCase(Utilisateur.Value) & "*" Then
If UCase(Range("J" & x)) & " " & UCase(Range("A" & x)) & UCase(Range("A" & x)) _
& " " & UCase(Range("J" & x)) Like "*" & UCase(Password.Value) & "*" Then

Unload Login
Nouveau.Show
Nouveau.Rechercher.SetFocus

GoTo Trouve
Exit For
End If
End If
Next x

GoTo Erreur
Exit Sub
Trouve: LigneVide = x

Exit Sub
Erreur: MsgBox "Login ou mot de passe incorrect!", , "Carnet d'adresses": Login.Show
Exit Sub
End Sub

A+ :cool:
 

Discussions similaires

Réponses
2
Affichages
406
Réponses
5
Affichages
671
Compte Supprimé 979
C

Statistiques des forums

Discussions
314 644
Messages
2 111 528
Membres
111 189
dernier inscrit
Laurent.