filtre par password
Le
Manu

Bonjour,
Je souahiterais qu'en fonction d'un mot de passe "titi" à l'ouverture du
fichier test.xlsm de la feuil1 que mon tableau (qui commence en A1) se
filtre immediatement sur la colonne K avec le critere "107" (en texte) et
qu'une fois filtré, on ne puisse plus defiltrer , copier coller, ni taper
dans aucunes des cellules pleines, mais avec le droit de taper dans des
cellules vides. Puis quand on quitte qu'il enleve les filtres pour remettre
tout en normal.
Ca m'à l'air assez compliqué
Merci de votre aide
Manu
Je souahiterais qu'en fonction d'un mot de passe "titi" à l'ouverture du
fichier test.xlsm de la feuil1 que mon tableau (qui commence en A1) se
filtre immediatement sur la colonne K avec le critere "107" (en texte) et
qu'une fois filtré, on ne puisse plus defiltrer , copier coller, ni taper
dans aucunes des cellules pleines, mais avec le droit de taper dans des
cellules vides. Puis quand on quitte qu'il enleve les filtres pour remettre
tout en normal.
Ca m'à l'air assez compliqué
Merci de votre aide
Manu
Essaie ceci :
A ) Choisis le mot de passe que tu veux
B ) Adapte le nom de la feuille. "Feuil1" est le nom de la propriété "Name" de
la feuille visible seulement dans l'interface de l'éditeur de code où tu
exécutes le filtre et non le nom de l'onglet.
'--------------------------------------------
Private Sub Workbook_Open()
Application.ScreenUpdating = False
On Error Resume Next
With Feuil1 'Modifie le nom de la propriété Name de ladite feuille
.Unprotect "toto"
.EnableSelection = xlUnlockedCells
.Cells.Locked = False
.Cells.SpecialCells(xlCellTypeFormulas).Locked = True
.Cells.SpecialCells(xlCellTypeConstants).Locked = True
With .Range("K:K")
.AutoFilter
.AutoFilter field:=1, Criteria1:="107", VisibleDropDown:úlse
End With
.Protect "toto"
End With
Application.ScreenUpdating = True
End Sub
'--------------------------------------------
MichD
------------------------------------------
"Manu" a écrit dans le message de groupe de discussion : 4f0da30c$0$5698$
Bonjour,
Je souahiterais qu'en fonction d'un mot de passe "titi" à l'ouverture du
fichier test.xlsm de la feuil1 que mon tableau (qui commence en A1) se
filtre immediatement sur la colonne K avec le critere "107" (en texte) et
qu'une fois filtré, on ne puisse plus defiltrer , copier coller, ni taper
dans aucunes des cellules pleines, mais avec le droit de taper dans des
cellules vides. Puis quand on quitte qu'il enleve les filtres pour remettre
tout en normal.
Ca m'à l'air assez compliqué...
Merci de votre aide
Manu
Ca fonctionne tres bien, mais il manque le principal, c'est qu'il ne me
demande pas le mot de passe "toto" pour ouvrir le fichier. Seul le tenanteur
du mot de passe peu avoir le droit d'ouvrir le fichier. Là tout le monde
peux l'ouvrir.
Merci
Manu
"MichD" jekbeo$7nm$
Le mot de passe pour ouvrir le fichier est : MichD Sensible à la casse.
Si tu veux réussir ce que tu désires, tu dois ajouter du code afin de t'assurer que l'usager
ne désactive pas les macros à l'ouverture pas les macros à l'ouverture du fichier.
Il ne te reste plus qu'à protéger le code du fichier par mot de passe.
MichD
------------------------------------------
"Manu" a écrit dans le message de groupe de discussion : 4f0dbf8c$0$2542$
Merci Mich,
Ca fonctionne tres bien, mais il manque le principal, c'est qu'il ne me
demande pas le mot de passe "toto" pour ouvrir le fichier. Seul le tenanteur
du mot de passe peu avoir le droit d'ouvrir le fichier. Là tout le monde
peux l'ouvrir.
Merci
Manu
"MichD" jekbeo$7nm$
Juste avant End Sub, inscrire : Me.Saved=true
MichD
------------------------------------------
cette feuil4 invisible...
J'essaie d'adapter ce que tu m'as donner pour faire evoluer ma finalité,
mais je n'arrive pas à adapter, je m'explique, j'ai un mot de passe qui me
filtre les 107 dans la colonne K, Mais il me faut plusieurs mot de passe qui
me filtrera differentes choses.
Exemple
Password MichD doit filtrer les 107 de la colonne K
Password Manu doit filtrer 250 de la colonne K
Password Nico doit filtrer les 66 de la colonne B
...... etc.... et j'en ais bcp ainsi
Je ne peux pas faire autant de Private Sub Workbook_Open() que de
password....
Merci encore
Manu
"MichD" jekkfd$tta$
**** Si l'usager maintient enfoncée la touche "Maj" pendant l'ouverture du fichier, la macro "Workbook_Open" ne s'exécutera
pas. La conséquence c'est que le fichier va s'ouvrir sans mot de passe et sans filtre. Pour éviter que la chose arrive, si
l'usager fait cela, la feuil4 masquée s'affiche et toutes les autres feuilles du classeur sont masquées. Il est donc
impossible à l'usager de modifier ou d'accéder aux feuilles de données du classeur. Voilà!
| Mais il me faut plusieurs mot de passe qui me filtrera differentes choses.
**** Dis, qu'est-ce qui t'empêcha d'énoncer clairement ta demande lors de ton premier message?
**** Comment savoir dans ta demande nouvelle, quel filtre doit s'exécuter à l'ouverture du classeur?
À partir de quel critère doit-on choisir un filtre ou un autre? Une feuille de calcul ne peut afficher que
le résultat d'un filtre à la fois...En conséquence, je ne comprends pas ta question.
MichD
------------------------------------------
"Manu" a écrit dans le message de groupe de discussion : 4f0ea7e0$0$5698$
Genial Mich, je ne comprend pas grand chose, surtout ce que viens faire
cette feuil4 invisible...
J'essaie d'adapter ce que tu m'as donner pour faire evoluer ma finalité,
mais je n'arrive pas à adapter, je m'explique, j'ai un mot de passe qui me
filtre les 107 dans la colonne K, Mais il me faut plusieurs mot de passe qui
me filtrera differentes choses.
Exemple
Password MichD doit filtrer les 107 de la colonne K
Password Manu doit filtrer 250 de la colonne K
Password Nico doit filtrer les 66 de la colonne B
...... etc.... et j'en ais bcp ainsi
Je ne peux pas faire autant de Private Sub Workbook_Open() que de
password....
Merci encore
Manu
"MichD" jekkfd$tta$
Private Sub Workbook_Open()
Dim MotDePasse(10) As String, colcritère(10) As String, critère(10) As String, x As Variant, i As Integer, utilisateur As Integer
Static Compteur As Integer
Call ThisWorkbook.Enable_Macro
MotDePasse(1) = "MichD": colcritère = "K:K": critère = "107": 'Mo t de passe pour ouvrir le fichier
MotDePasse(2) = "Manu": colcritère = "K:K": critère = "250": '
MotDePasse(3) = "Nico": colcritère = "B:B": critère = "66":
Do
x = ""
x = Application.InputBox(Prompt:="Saisir le mot de passe.", Type: =2)
If TypeName(x) = "Boolean" Then
ThisWorkbook.Close
Else
If Compteur = 3 Then
MsgBox "Le classeur doit fermer.", _
vbCritical + vbokok, "attention"
ThisWorkbook.Close
End If
Compteur = Compteur + 1
End If
For i = 1 To 10
If x = MotDePasse(i) Then utilisateur = i: x = "trouvé": Exit For
Next i
Loop Until x = "trouvé"
Le jeudi 12 janvier 2012 10:29:07 UTC+1, Manu a écrit :
voici une modification du code de MichD, qui devrait permettre de gérer d es utilisateurs différents (jusqu'à 10 dans le cas présent).
non-testé.
Private Sub Workbook_Open()
Dim MotDePasse(10) As String, colcritère(10) As String, critère(10) As String, x As Variant, i As Integer, utilisateur As Integer
Static Compteur As Integer
Call ThisWorkbook.Enable_Macro
MotDePasse(1) = "MichD": colcritère = "K:K": critère = "107": 'Mo t de passe pour ouvrir le fichier
MotDePasse(2) = "Manu": colcritère = "K:K": critère = "250": '
MotDePasse(3) = "Nico": colcritère = "B:B": critère = "66":
Do
x = ""
x = Application.InputBox(Prompt:="Saisir le mot de passe.", Type: =2)
If TypeName(x) = "Boolean" Then
ThisWorkbook.Close
Else
If Compteur = 3 Then
MsgBox "Le classeur doit fermer.", _
vbCritical + vbokok, "attention"
ThisWorkbook.Close
End If
Compteur = Compteur + 1
End If
For i = 1 To 10
If x = MotDePasse(i) Then utilisateur = i: x = "trouvé": Exit For
Next i
Loop Until x = "trouvé"Le mercredi 11 janvier 2012 15:56:13 UTC+1, Manu a écrit :
il manquait un morceau de code
Application.ScreenUpdating = False
On Error Resume Next
With Feuil1 'Modifie le nom de la propriété Name de ladite feuille
.Unprotect "toto"
.EnableSelection = xlUnlockedCells
.Cells.Locked = False
.Cells.SpecialCells(xlCellTypeFormulas).Locked = True
.Cells.SpecialCells(xlCellTypeConstants).Locked = True
With .Range(colcritère(utilisateur))
.AutoFilter
.AutoFilter field:=1, Criteria1:=critère(utilisateur), Visibl eDropDown:úlse
End With
.Protect "toto"
End With
Application.ScreenUpdating = True
End Sub
Le mercredi 11 janvier 2012 15:56:13 UTC+1, Manu a écrit :
Super idée !
Je ênsais pouvoir m'en sortir en modifiant ton code, ce qui me permet d''y
travailler davantage en esperant apprendre, mais je suis depassé.
Bien sur, il ne peut y avoir qu'un filtre, c'est à l'ouverture du fichier,
si on à le mot de passe MichD, il doit filtrer les 107 de la colonne K à
l'ouverture du fichier
Si on à le mot de passe Manu, à l'ouverture du fichier il doit filtrer 250
de la colonne K
Etc........