Bonjour Gilles,
Oui c'est possible. Mais je crois que tu vas te donner beaucoup de travail pour t'apercevoir que la sécurité au niveau du mot de
passe de la feuille de calcul est très "faible", et les usagers de ton application risque de trouver rapidement un moyen !
Voici un bref aperçu comment tu pourrais t'y prendre. Ce n'est qu'un petit exemple....à partir duquel tu pourrais construire la
procédure que tu désires !
Si tu y tiens vraiment :
A ) à l'ouverture du fichier, tu dois pouvoir identifier quel usager ouvre le fichier .
Dans un module standard, tu définis dans le haut de celui-ci :
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
Ceci à copier dans le ThisWorkbook de ton classeur.
Limiter l'accès du classeur à ces 2 usagers toto et toto1
'-----------------------
Private Sub Workbook_Open()
Dim Usager As Variant
OK = True
Do
Usager = Application.InputBox("Votre nom.", "Nom", , , , , , 2)
If Format(Usager) = "False" Then ThisWorkbook.Close
If (Usager <> "toto" Or Usager <> "toto1") And Usager <> "" Then
MsgBox "Vous ne pouvez pas ouvrir ce fichier."
OK = False
Usager = ""
End If
Loop Until OK = True
End Sub
'-----------------------
Et dans la feuille module où tu veux limiter l'accès, ceci :
'-------------------------------
Private Sub Worksheet_Activate()
Dim MotDePasse As String
MotDePasse = Application.InputBox("Quel est votre mot de passe ?")
If Format(MotDePasse) = "False" Then
'procédure :Toute la feuille est protégée
If Usager = toto And MotDePasse = MotUsager Then
'procédure pour protéger les cellules pour cet usager
If Usager = toto1 And MotDePasse = MotUsager1 Then
'procédure pour protéger les cellules pour cet usager.
End If
End Sub
'-------------------------------
Salutations!
"gilles.leroy8" a écrit dans le message de news: 4277cab9$0$3122$
bonsoir à tous,
est-il possible sur excel, de verrouiller certaines cellules avec un mot de
passe pour un utilisateur, et un autre , pour un autre utilisateur, qui
aurit accès à des cellules différentes?
Merci à Ceux-qui-ont-la-science-infuse
Gilles
Bonjour Gilles,
Oui c'est possible. Mais je crois que tu vas te donner beaucoup de travail pour t'apercevoir que la sécurité au niveau du mot de
passe de la feuille de calcul est très "faible", et les usagers de ton application risque de trouver rapidement un moyen !
Voici un bref aperçu comment tu pourrais t'y prendre. Ce n'est qu'un petit exemple....à partir duquel tu pourrais construire la
procédure que tu désires !
Si tu y tiens vraiment :
A ) à l'ouverture du fichier, tu dois pouvoir identifier quel usager ouvre le fichier .
Dans un module standard, tu définis dans le haut de celui-ci :
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
Ceci à copier dans le ThisWorkbook de ton classeur.
Limiter l'accès du classeur à ces 2 usagers toto et toto1
'-----------------------
Private Sub Workbook_Open()
Dim Usager As Variant
OK = True
Do
Usager = Application.InputBox("Votre nom.", "Nom", , , , , , 2)
If Format(Usager) = "False" Then ThisWorkbook.Close
If (Usager <> "toto" Or Usager <> "toto1") And Usager <> "" Then
MsgBox "Vous ne pouvez pas ouvrir ce fichier."
OK = False
Usager = ""
End If
Loop Until OK = True
End Sub
'-----------------------
Et dans la feuille module où tu veux limiter l'accès, ceci :
'-------------------------------
Private Sub Worksheet_Activate()
Dim MotDePasse As String
MotDePasse = Application.InputBox("Quel est votre mot de passe ?")
If Format(MotDePasse) = "False" Then
'procédure :Toute la feuille est protégée
If Usager = toto And MotDePasse = MotUsager Then
'procédure pour protéger les cellules pour cet usager
If Usager = toto1 And MotDePasse = MotUsager1 Then
'procédure pour protéger les cellules pour cet usager.
End If
End Sub
'-------------------------------
Salutations!
"gilles.leroy8" <gilles.leroy8@wanadoo.fr> a écrit dans le message de news: 4277cab9$0$3122$8fcfb975@news.wanadoo.fr...
bonsoir à tous,
est-il possible sur excel, de verrouiller certaines cellules avec un mot de
passe pour un utilisateur, et un autre , pour un autre utilisateur, qui
aurit accès à des cellules différentes?
Merci à Ceux-qui-ont-la-science-infuse
Gilles
Bonjour Gilles,
Oui c'est possible. Mais je crois que tu vas te donner beaucoup de travail pour t'apercevoir que la sécurité au niveau du mot de
passe de la feuille de calcul est très "faible", et les usagers de ton application risque de trouver rapidement un moyen !
Voici un bref aperçu comment tu pourrais t'y prendre. Ce n'est qu'un petit exemple....à partir duquel tu pourrais construire la
procédure que tu désires !
Si tu y tiens vraiment :
A ) à l'ouverture du fichier, tu dois pouvoir identifier quel usager ouvre le fichier .
Dans un module standard, tu définis dans le haut de celui-ci :
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
Ceci à copier dans le ThisWorkbook de ton classeur.
Limiter l'accès du classeur à ces 2 usagers toto et toto1
'-----------------------
Private Sub Workbook_Open()
Dim Usager As Variant
OK = True
Do
Usager = Application.InputBox("Votre nom.", "Nom", , , , , , 2)
If Format(Usager) = "False" Then ThisWorkbook.Close
If (Usager <> "toto" Or Usager <> "toto1") And Usager <> "" Then
MsgBox "Vous ne pouvez pas ouvrir ce fichier."
OK = False
Usager = ""
End If
Loop Until OK = True
End Sub
'-----------------------
Et dans la feuille module où tu veux limiter l'accès, ceci :
'-------------------------------
Private Sub Worksheet_Activate()
Dim MotDePasse As String
MotDePasse = Application.InputBox("Quel est votre mot de passe ?")
If Format(MotDePasse) = "False" Then
'procédure :Toute la feuille est protégée
If Usager = toto And MotDePasse = MotUsager Then
'procédure pour protéger les cellules pour cet usager
If Usager = toto1 And MotDePasse = MotUsager1 Then
'procédure pour protéger les cellules pour cet usager.
End If
End Sub
'-------------------------------
Salutations!
"gilles.leroy8" a écrit dans le message de news: 4277cab9$0$3122$
bonsoir à tous,
est-il possible sur excel, de verrouiller certaines cellules avec un mot de
passe pour un utilisateur, et un autre , pour un autre utilisateur, qui
aurit accès à des cellules différentes?
Merci à Ceux-qui-ont-la-science-infuse
Gilles
Bonjour Gilles,
Oui c'est possible. Mais je crois que tu vas te donner beaucoup de travail pour t'apercevoir que la sécurité au niveau du mot de
passe de la feuille de calcul est très "faible", et les usagers de ton application risque de trouver rapidement un moyen !
Voici un bref aperçu comment tu pourrais t'y prendre. Ce n'est qu'un petit exemple....à partir duquel tu pourrais construire la
procédure que tu désires !
Si tu y tiens vraiment :
A ) à l'ouverture du fichier, tu dois pouvoir identifier quel usager ouvre le fichier .
Dans un module standard, tu définis dans le haut de celui-ci :
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
Ceci à copier dans le ThisWorkbook de ton classeur.
Limiter l'accès du classeur à ces 2 usagers toto et toto1
'-----------------------
Private Sub Workbook_Open()
Dim Usager As Variant
OK = True
Do
Usager = Application.InputBox("Votre nom.", "Nom", , , , , , 2)
If Format(Usager) = "False" Then ThisWorkbook.Close
If (Usager <> "toto" Or Usager <> "toto1") And Usager <> "" Then
MsgBox "Vous ne pouvez pas ouvrir ce fichier."
OK = False
Usager = ""
End If
Loop Until OK = True
End Sub
'-----------------------
Et dans la feuille module où tu veux limiter l'accès, ceci :
'-------------------------------
Private Sub Worksheet_Activate()
Dim MotDePasse As String
MotDePasse = Application.InputBox("Quel est votre mot de passe ?")
If Format(MotDePasse) = "False" Then
'procédure :Toute la feuille est protégée
If Usager = toto And MotDePasse = MotUsager Then
'procédure pour protéger les cellules pour cet usager
If Usager = toto1 And MotDePasse = MotUsager1 Then
'procédure pour protéger les cellules pour cet usager.
End If
End Sub
'-------------------------------
Salutations!
"gilles.leroy8" a écrit dans le message de news: 4277cab9$0$3122$
bonsoir à tous,
est-il possible sur excel, de verrouiller certaines cellules avec un mot de
passe pour un utilisateur, et un autre , pour un autre utilisateur, qui
aurit accès à des cellules différentes?
Merci à Ceux-qui-ont-la-science-infuse
Gilles
Bonjour Gilles,
Oui c'est possible. Mais je crois que tu vas te donner beaucoup de travail pour t'apercevoir que la sécurité au niveau du mot de
passe de la feuille de calcul est très "faible", et les usagers de ton application risque de trouver rapidement un moyen !
Voici un bref aperçu comment tu pourrais t'y prendre. Ce n'est qu'un petit exemple....à partir duquel tu pourrais construire la
procédure que tu désires !
Si tu y tiens vraiment :
A ) à l'ouverture du fichier, tu dois pouvoir identifier quel usager ouvre le fichier .
Dans un module standard, tu définis dans le haut de celui-ci :
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
Ceci à copier dans le ThisWorkbook de ton classeur.
Limiter l'accès du classeur à ces 2 usagers toto et toto1
'-----------------------
Private Sub Workbook_Open()
Dim Usager As Variant
OK = True
Do
Usager = Application.InputBox("Votre nom.", "Nom", , , , , , 2)
If Format(Usager) = "False" Then ThisWorkbook.Close
If (Usager <> "toto" Or Usager <> "toto1") And Usager <> "" Then
MsgBox "Vous ne pouvez pas ouvrir ce fichier."
OK = False
Usager = ""
End If
Loop Until OK = True
End Sub
'-----------------------
Et dans la feuille module où tu veux limiter l'accès, ceci :
'-------------------------------
Private Sub Worksheet_Activate()
Dim MotDePasse As String
MotDePasse = Application.InputBox("Quel est votre mot de passe ?")
If Format(MotDePasse) = "False" Then
'procédure :Toute la feuille est protégée
If Usager = toto And MotDePasse = MotUsager Then
'procédure pour protéger les cellules pour cet usager
If Usager = toto1 And MotDePasse = MotUsager1 Then
'procédure pour protéger les cellules pour cet usager.
End If
End Sub
'-------------------------------
Salutations!
"gilles.leroy8" <gilles.leroy8@wanadoo.fr> a écrit dans le message de news: 4277cab9$0$3122$8fcfb975@news.wanadoo.fr...
bonsoir à tous,
est-il possible sur excel, de verrouiller certaines cellules avec un mot de
passe pour un utilisateur, et un autre , pour un autre utilisateur, qui
aurit accès à des cellules différentes?
Merci à Ceux-qui-ont-la-science-infuse
Gilles
Bonjour Gilles,
Oui c'est possible. Mais je crois que tu vas te donner beaucoup de travail pour t'apercevoir que la sécurité au niveau du mot de
passe de la feuille de calcul est très "faible", et les usagers de ton application risque de trouver rapidement un moyen !
Voici un bref aperçu comment tu pourrais t'y prendre. Ce n'est qu'un petit exemple....à partir duquel tu pourrais construire la
procédure que tu désires !
Si tu y tiens vraiment :
A ) à l'ouverture du fichier, tu dois pouvoir identifier quel usager ouvre le fichier .
Dans un module standard, tu définis dans le haut de celui-ci :
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
Ceci à copier dans le ThisWorkbook de ton classeur.
Limiter l'accès du classeur à ces 2 usagers toto et toto1
'-----------------------
Private Sub Workbook_Open()
Dim Usager As Variant
OK = True
Do
Usager = Application.InputBox("Votre nom.", "Nom", , , , , , 2)
If Format(Usager) = "False" Then ThisWorkbook.Close
If (Usager <> "toto" Or Usager <> "toto1") And Usager <> "" Then
MsgBox "Vous ne pouvez pas ouvrir ce fichier."
OK = False
Usager = ""
End If
Loop Until OK = True
End Sub
'-----------------------
Et dans la feuille module où tu veux limiter l'accès, ceci :
'-------------------------------
Private Sub Worksheet_Activate()
Dim MotDePasse As String
MotDePasse = Application.InputBox("Quel est votre mot de passe ?")
If Format(MotDePasse) = "False" Then
'procédure :Toute la feuille est protégée
If Usager = toto And MotDePasse = MotUsager Then
'procédure pour protéger les cellules pour cet usager
If Usager = toto1 And MotDePasse = MotUsager1 Then
'procédure pour protéger les cellules pour cet usager.
End If
End Sub
'-------------------------------
Salutations!
"gilles.leroy8" a écrit dans le message de news: 4277cab9$0$3122$
bonsoir à tous,
est-il possible sur excel, de verrouiller certaines cellules avec un mot de
passe pour un utilisateur, et un autre , pour un autre utilisateur, qui
aurit accès à des cellules différentes?
Merci à Ceux-qui-ont-la-science-infuse
Gilles
Bonjour Gilles,
Oui c'est possible. Mais je crois que tu vas te donner beaucoup de travail pour t'apercevoir que la sécurité au niveau du mot de
passe de la feuille de calcul est très "faible", et les usagers de ton application risque de trouver rapidement un moyen !
Voici un bref aperçu comment tu pourrais t'y prendre. Ce n'est qu'un petit exemple....à partir duquel tu pourrais construire la
procédure que tu désires !
Si tu y tiens vraiment :
A ) à l'ouverture du fichier, tu dois pouvoir identifier quel usager ouvre le fichier .
Dans un module standard, tu définis dans le haut de celui-ci :
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
Ceci à copier dans le ThisWorkbook de ton classeur.
Limiter l'accès du classeur à ces 2 usagers toto et toto1
'-----------------------
Private Sub Workbook_Open()
Dim Usager As Variant
OK = True
Do
Usager = Application.InputBox("Votre nom.", "Nom", , , , , , 2)
If Format(Usager) = "False" Then ThisWorkbook.Close
If (Usager <> "toto" Or Usager <> "toto1") And Usager <> "" Then
MsgBox "Vous ne pouvez pas ouvrir ce fichier."
OK = False
Usager = ""
End If
Loop Until OK = True
End Sub
'-----------------------
Et dans la feuille module où tu veux limiter l'accès, ceci :
'-------------------------------
Private Sub Worksheet_Activate()
Dim MotDePasse As String
MotDePasse = Application.InputBox("Quel est votre mot de passe ?")
If Format(MotDePasse) = "False" Then
'procédure :Toute la feuille est protégée
If Usager = toto And MotDePasse = MotUsager Then
'procédure pour protéger les cellules pour cet usager
If Usager = toto1 And MotDePasse = MotUsager1 Then
'procédure pour protéger les cellules pour cet usager.
End If
End Sub
'-------------------------------
Salutations!
"gilles.leroy8" a écrit dans le message de news: 4277cab9$0$3122$
bonsoir à tous,
est-il possible sur excel, de verrouiller certaines cellules avec un mot de
passe pour un utilisateur, et un autre , pour un autre utilisateur, qui
aurit accès à des cellules différentes?
Merci à Ceux-qui-ont-la-science-infuse
Gilles
Bonjour Gilles,
Oui c'est possible. Mais je crois que tu vas te donner beaucoup de travail pour t'apercevoir que la sécurité au niveau du mot de
passe de la feuille de calcul est très "faible", et les usagers de ton application risque de trouver rapidement un moyen !
Voici un bref aperçu comment tu pourrais t'y prendre. Ce n'est qu'un petit exemple....à partir duquel tu pourrais construire la
procédure que tu désires !
Si tu y tiens vraiment :
A ) à l'ouverture du fichier, tu dois pouvoir identifier quel usager ouvre le fichier .
Dans un module standard, tu définis dans le haut de celui-ci :
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
Ceci à copier dans le ThisWorkbook de ton classeur.
Limiter l'accès du classeur à ces 2 usagers toto et toto1
'-----------------------
Private Sub Workbook_Open()
Dim Usager As Variant
OK = True
Do
Usager = Application.InputBox("Votre nom.", "Nom", , , , , , 2)
If Format(Usager) = "False" Then ThisWorkbook.Close
If (Usager <> "toto" Or Usager <> "toto1") And Usager <> "" Then
MsgBox "Vous ne pouvez pas ouvrir ce fichier."
OK = False
Usager = ""
End If
Loop Until OK = True
End Sub
'-----------------------
Et dans la feuille module où tu veux limiter l'accès, ceci :
'-------------------------------
Private Sub Worksheet_Activate()
Dim MotDePasse As String
MotDePasse = Application.InputBox("Quel est votre mot de passe ?")
If Format(MotDePasse) = "False" Then
'procédure :Toute la feuille est protégée
If Usager = toto And MotDePasse = MotUsager Then
'procédure pour protéger les cellules pour cet usager
If Usager = toto1 And MotDePasse = MotUsager1 Then
'procédure pour protéger les cellules pour cet usager.
End If
End Sub
'-------------------------------
Salutations!
"gilles.leroy8" <gilles.leroy8@wanadoo.fr> a écrit dans le message de news: 4277cab9$0$3122$8fcfb975@news.wanadoo.fr...
bonsoir à tous,
est-il possible sur excel, de verrouiller certaines cellules avec un mot de
passe pour un utilisateur, et un autre , pour un autre utilisateur, qui
aurit accès à des cellules différentes?
Merci à Ceux-qui-ont-la-science-infuse
Gilles
Bonjour Gilles,
Oui c'est possible. Mais je crois que tu vas te donner beaucoup de travail pour t'apercevoir que la sécurité au niveau du mot de
passe de la feuille de calcul est très "faible", et les usagers de ton application risque de trouver rapidement un moyen !
Voici un bref aperçu comment tu pourrais t'y prendre. Ce n'est qu'un petit exemple....à partir duquel tu pourrais construire la
procédure que tu désires !
Si tu y tiens vraiment :
A ) à l'ouverture du fichier, tu dois pouvoir identifier quel usager ouvre le fichier .
Dans un module standard, tu définis dans le haut de celui-ci :
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
Ceci à copier dans le ThisWorkbook de ton classeur.
Limiter l'accès du classeur à ces 2 usagers toto et toto1
'-----------------------
Private Sub Workbook_Open()
Dim Usager As Variant
OK = True
Do
Usager = Application.InputBox("Votre nom.", "Nom", , , , , , 2)
If Format(Usager) = "False" Then ThisWorkbook.Close
If (Usager <> "toto" Or Usager <> "toto1") And Usager <> "" Then
MsgBox "Vous ne pouvez pas ouvrir ce fichier."
OK = False
Usager = ""
End If
Loop Until OK = True
End Sub
'-----------------------
Et dans la feuille module où tu veux limiter l'accès, ceci :
'-------------------------------
Private Sub Worksheet_Activate()
Dim MotDePasse As String
MotDePasse = Application.InputBox("Quel est votre mot de passe ?")
If Format(MotDePasse) = "False" Then
'procédure :Toute la feuille est protégée
If Usager = toto And MotDePasse = MotUsager Then
'procédure pour protéger les cellules pour cet usager
If Usager = toto1 And MotDePasse = MotUsager1 Then
'procédure pour protéger les cellules pour cet usager.
End If
End Sub
'-------------------------------
Salutations!
"gilles.leroy8" a écrit dans le message de news: 4277cab9$0$3122$
bonsoir à tous,
est-il possible sur excel, de verrouiller certaines cellules avec un mot de
passe pour un utilisateur, et un autre , pour un autre utilisateur, qui
aurit accès à des cellules différentes?
Merci à Ceux-qui-ont-la-science-infuse
Gilles
Bonjour Gilles,
A )
Dim Usager As Public
J'aurais dû écrire : Dim Usager As String
Erreur d'inattention.
B ) | tu proposes de limiter à 2 utilisateurs Quel est le pb si j'en mets 3 ou 4 ?
Aucun, le code n'était qu'un petit exemple et comme je ne n'avais pas toutes les précisions voulues sur ce que tu voulais faire je
t'ai donné un bout de code que tu pourrais adapter pour développer ce que tu désires. Si tu veux que ton fichier puisse être
accessible par tous, dans la procédure du ThisWorkbook , événement "open" assure toi que la feuille active ne sera pas la feuille à
autorisation restrincte car l'événement "Activate" associé à la feuille ne sera pas exécuté et ta procédure dans le module feuille
ne sera pas opérante à l'ouverture de la feuille.
Private Sub Workbook_Open()
Worksheets("Feuil2").activate
End Sub
C ) Voici un bout de code que tu devras répéter pour chacun des usagers qui doivent accéder à ta feuille, il s'agit dans ce bout de
code de modifier la plage de cellules dont l'accès est interdites.
'---------------------------
'toto est le mot de passe
With Worksheets("Feuil1")
.Unprotect "toto"
.Cells.Locked = False
'Plage de cellules qui doit être accessible
.Range("A1:A5").Locked = True
.Protect "toto", True, True, True, True
End With
End Sub
'---------------------------
Salutations!
"gilles" a écrit dans le message de news:
Re bonjour MICHEL,
KEK pb en essayant d'utiliser ton code
1 - dans le module ou je mets:
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
J'ai une fenêtre ERREUR COMPILATION
Attendu: New ou nom de type
2- tu proposes de limiter à 2 utilisateurs Quel est le pb si j'en mets 3 ou
4 ?
3- je souhaites que chacun des 4 utilisateurs ait accès à certaines colonnes
seulement et différentes d'un utilisateurs, et sauf erreur de ma part je ne
vois pas dans le code la possibilité de cibler les cellules ou colonnes
concernées
à+
gilles
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...Bonjour Gilles,
Oui c'est possible. Mais je crois que tu vas te donner beaucoup de travail pour t'apercevoir que la sécurité au niveau du mot de
passe de la feuille de calcul est très "faible", et les usagers de ton application risque de trouver rapidement un moyen !
Voici un bref aperçu comment tu pourrais t'y prendre. Ce n'est qu'un petit exemple....à partir duquel tu pourrais construire la
procédure que tu désires !
Si tu y tiens vraiment :
A ) à l'ouverture du fichier, tu dois pouvoir identifier quel usager ouvre le fichier .
Dans un module standard, tu définis dans le haut de celui-ci :
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
Ceci à copier dans le ThisWorkbook de ton classeur.
Limiter l'accès du classeur à ces 2 usagers toto et toto1
'-----------------------
Private Sub Workbook_Open()
Dim Usager As Variant
OK = True
Do
Usager = Application.InputBox("Votre nom.", "Nom", , , , , , 2)
If Format(Usager) = "False" Then ThisWorkbook.Close
If (Usager <> "toto" Or Usager <> "toto1") And Usager <> "" Then
MsgBox "Vous ne pouvez pas ouvrir ce fichier."
OK = False
Usager = ""
End If
Loop Until OK = True
End Sub
'-----------------------
Et dans la feuille module où tu veux limiter l'accès, ceci :
'-------------------------------
Private Sub Worksheet_Activate()
Dim MotDePasse As String
MotDePasse = Application.InputBox("Quel est votre mot de passe ?")
If Format(MotDePasse) = "False" Then
'procédure :Toute la feuille est protégée
If Usager = toto And MotDePasse = MotUsager Then
'procédure pour protéger les cellules pour cet usager
If Usager = toto1 And MotDePasse = MotUsager1 Then
'procédure pour protéger les cellules pour cet usager.
End If
End Sub
'-------------------------------
Salutations!
"gilles.leroy8" a écrit dans le message de news: 4277cab9$0$3122$
bonsoir à tous,
est-il possible sur excel, de verrouiller certaines cellules avec un mot de
passe pour un utilisateur, et un autre , pour un autre utilisateur, qui
aurit accès à des cellules différentes?
Merci à Ceux-qui-ont-la-science-infuse
Gilles
Bonjour Gilles,
A )
Dim Usager As Public
J'aurais dû écrire : Dim Usager As String
Erreur d'inattention.
B ) | tu proposes de limiter à 2 utilisateurs Quel est le pb si j'en mets 3 ou 4 ?
Aucun, le code n'était qu'un petit exemple et comme je ne n'avais pas toutes les précisions voulues sur ce que tu voulais faire je
t'ai donné un bout de code que tu pourrais adapter pour développer ce que tu désires. Si tu veux que ton fichier puisse être
accessible par tous, dans la procédure du ThisWorkbook , événement "open" assure toi que la feuille active ne sera pas la feuille à
autorisation restrincte car l'événement "Activate" associé à la feuille ne sera pas exécuté et ta procédure dans le module feuille
ne sera pas opérante à l'ouverture de la feuille.
Private Sub Workbook_Open()
Worksheets("Feuil2").activate
End Sub
C ) Voici un bout de code que tu devras répéter pour chacun des usagers qui doivent accéder à ta feuille, il s'agit dans ce bout de
code de modifier la plage de cellules dont l'accès est interdites.
'---------------------------
'toto est le mot de passe
With Worksheets("Feuil1")
.Unprotect "toto"
.Cells.Locked = False
'Plage de cellules qui doit être accessible
.Range("A1:A5").Locked = True
.Protect "toto", True, True, True, True
End With
End Sub
'---------------------------
Salutations!
"gilles" <gilles@discussions.microsoft.com> a écrit dans le message de news: 30487D6D-65E0-4AB4-B16A-8835587984F1@microsoft.com...
Re bonjour MICHEL,
KEK pb en essayant d'utiliser ton code
1 - dans le module ou je mets:
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
J'ai une fenêtre ERREUR COMPILATION
Attendu: New ou nom de type
2- tu proposes de limiter à 2 utilisateurs Quel est le pb si j'en mets 3 ou
4 ?
3- je souhaites que chacun des 4 utilisateurs ait accès à certaines colonnes
seulement et différentes d'un utilisateurs, et sauf erreur de ma part je ne
vois pas dans le code la possibilité de cibler les cellules ou colonnes
concernées
à+
gilles
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...
Bonjour Gilles,
Oui c'est possible. Mais je crois que tu vas te donner beaucoup de travail pour t'apercevoir que la sécurité au niveau du mot de
passe de la feuille de calcul est très "faible", et les usagers de ton application risque de trouver rapidement un moyen !
Voici un bref aperçu comment tu pourrais t'y prendre. Ce n'est qu'un petit exemple....à partir duquel tu pourrais construire la
procédure que tu désires !
Si tu y tiens vraiment :
A ) à l'ouverture du fichier, tu dois pouvoir identifier quel usager ouvre le fichier .
Dans un module standard, tu définis dans le haut de celui-ci :
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
Ceci à copier dans le ThisWorkbook de ton classeur.
Limiter l'accès du classeur à ces 2 usagers toto et toto1
'-----------------------
Private Sub Workbook_Open()
Dim Usager As Variant
OK = True
Do
Usager = Application.InputBox("Votre nom.", "Nom", , , , , , 2)
If Format(Usager) = "False" Then ThisWorkbook.Close
If (Usager <> "toto" Or Usager <> "toto1") And Usager <> "" Then
MsgBox "Vous ne pouvez pas ouvrir ce fichier."
OK = False
Usager = ""
End If
Loop Until OK = True
End Sub
'-----------------------
Et dans la feuille module où tu veux limiter l'accès, ceci :
'-------------------------------
Private Sub Worksheet_Activate()
Dim MotDePasse As String
MotDePasse = Application.InputBox("Quel est votre mot de passe ?")
If Format(MotDePasse) = "False" Then
'procédure :Toute la feuille est protégée
If Usager = toto And MotDePasse = MotUsager Then
'procédure pour protéger les cellules pour cet usager
If Usager = toto1 And MotDePasse = MotUsager1 Then
'procédure pour protéger les cellules pour cet usager.
End If
End Sub
'-------------------------------
Salutations!
"gilles.leroy8" <gilles.leroy8@wanadoo.fr> a écrit dans le message de news: 4277cab9$0$3122$8fcfb975@news.wanadoo.fr...
bonsoir à tous,
est-il possible sur excel, de verrouiller certaines cellules avec un mot de
passe pour un utilisateur, et un autre , pour un autre utilisateur, qui
aurit accès à des cellules différentes?
Merci à Ceux-qui-ont-la-science-infuse
Gilles
Bonjour Gilles,
A )
Dim Usager As Public
J'aurais dû écrire : Dim Usager As String
Erreur d'inattention.
B ) | tu proposes de limiter à 2 utilisateurs Quel est le pb si j'en mets 3 ou 4 ?
Aucun, le code n'était qu'un petit exemple et comme je ne n'avais pas toutes les précisions voulues sur ce que tu voulais faire je
t'ai donné un bout de code que tu pourrais adapter pour développer ce que tu désires. Si tu veux que ton fichier puisse être
accessible par tous, dans la procédure du ThisWorkbook , événement "open" assure toi que la feuille active ne sera pas la feuille à
autorisation restrincte car l'événement "Activate" associé à la feuille ne sera pas exécuté et ta procédure dans le module feuille
ne sera pas opérante à l'ouverture de la feuille.
Private Sub Workbook_Open()
Worksheets("Feuil2").activate
End Sub
C ) Voici un bout de code que tu devras répéter pour chacun des usagers qui doivent accéder à ta feuille, il s'agit dans ce bout de
code de modifier la plage de cellules dont l'accès est interdites.
'---------------------------
'toto est le mot de passe
With Worksheets("Feuil1")
.Unprotect "toto"
.Cells.Locked = False
'Plage de cellules qui doit être accessible
.Range("A1:A5").Locked = True
.Protect "toto", True, True, True, True
End With
End Sub
'---------------------------
Salutations!
"gilles" a écrit dans le message de news:
Re bonjour MICHEL,
KEK pb en essayant d'utiliser ton code
1 - dans le module ou je mets:
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
J'ai une fenêtre ERREUR COMPILATION
Attendu: New ou nom de type
2- tu proposes de limiter à 2 utilisateurs Quel est le pb si j'en mets 3 ou
4 ?
3- je souhaites que chacun des 4 utilisateurs ait accès à certaines colonnes
seulement et différentes d'un utilisateurs, et sauf erreur de ma part je ne
vois pas dans le code la possibilité de cibler les cellules ou colonnes
concernées
à+
gilles
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...Bonjour Gilles,
Oui c'est possible. Mais je crois que tu vas te donner beaucoup de travail pour t'apercevoir que la sécurité au niveau du mot de
passe de la feuille de calcul est très "faible", et les usagers de ton application risque de trouver rapidement un moyen !
Voici un bref aperçu comment tu pourrais t'y prendre. Ce n'est qu'un petit exemple....à partir duquel tu pourrais construire la
procédure que tu désires !
Si tu y tiens vraiment :
A ) à l'ouverture du fichier, tu dois pouvoir identifier quel usager ouvre le fichier .
Dans un module standard, tu définis dans le haut de celui-ci :
Dim Usager As Public
'les constantes pour les mots de passe des 2 usagers
Public Const MotUsager = "toto"
Public Const MotUsager1 = "toto1"
Ceci à copier dans le ThisWorkbook de ton classeur.
Limiter l'accès du classeur à ces 2 usagers toto et toto1
'-----------------------
Private Sub Workbook_Open()
Dim Usager As Variant
OK = True
Do
Usager = Application.InputBox("Votre nom.", "Nom", , , , , , 2)
If Format(Usager) = "False" Then ThisWorkbook.Close
If (Usager <> "toto" Or Usager <> "toto1") And Usager <> "" Then
MsgBox "Vous ne pouvez pas ouvrir ce fichier."
OK = False
Usager = ""
End If
Loop Until OK = True
End Sub
'-----------------------
Et dans la feuille module où tu veux limiter l'accès, ceci :
'-------------------------------
Private Sub Worksheet_Activate()
Dim MotDePasse As String
MotDePasse = Application.InputBox("Quel est votre mot de passe ?")
If Format(MotDePasse) = "False" Then
'procédure :Toute la feuille est protégée
If Usager = toto And MotDePasse = MotUsager Then
'procédure pour protéger les cellules pour cet usager
If Usager = toto1 And MotDePasse = MotUsager1 Then
'procédure pour protéger les cellules pour cet usager.
End If
End Sub
'-------------------------------
Salutations!
"gilles.leroy8" a écrit dans le message de news: 4277cab9$0$3122$
bonsoir à tous,
est-il possible sur excel, de verrouiller certaines cellules avec un mot de
passe pour un utilisateur, et un autre , pour un autre utilisateur, qui
aurit accès à des cellules différentes?
Merci à Ceux-qui-ont-la-science-infuse
Gilles