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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #24152781
Bonjour,

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
Manu
Le #24152991
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$
Bonjour,

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

MichD
Le #24153171
Voici un fichier exemple : http://cjoint.com/?BAltpNkgwnH

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$
Bonjour,

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

MichD
Le #24153181
J'ai omis cette ligne de code comme "dernière ligne" de la procédure "Workbook_Open" dans le ThisWorkbook

Juste avant End Sub, inscrire : Me.Saved=true



MichD
------------------------------------------
Manu
Le #24154541
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$
J'ai omis cette ligne de code comme "dernière ligne" de la procédure
"Workbook_Open" dans le ThisWorkbook

Juste avant End Sub, inscrire : Me.Saved=true



MichD
------------------------------------------

MichD
Le #24155101
| surtout ce que viens faire cette feuil4 invisible...

**** 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$
J'ai omis cette ligne de code comme "dernière ligne" de la procédure
"Workbook_Open" dans le ThisWorkbook

Juste avant End Sub, inscrire : Me.Saved=true



MichD
------------------------------------------

h2so4
Le #24155221
voici la partie du code de MichD adaptée pour pouvoir gérer plusieurs u tilisateurs (jusqu'à 10 dans le cas présent:


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 :
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$
> J'ai omis cette ligne de code comme "dernière ligne" de la procédur e
> "Workbook_Open" dans le ThisWorkbook
>
> Juste avant End Sub, inscrire : Me.Saved=true
>
>
>
> MichD
> ------------------------------------------
>
h2so4
Le #24155211
bonjour,

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 :
Bonjour,

Je souahiterais qu'en fonction d'un mot de passe "titi" à l'ouverture d u
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 tap er
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 remett re
tout en normal.
Ca m'à l'air assez compliqué...

Merci de votre aide

Manu
h2so4
Le #24155271
Le jeudi 12 janvier 2012 13:57:57 UTC+1, h2so4 a écrit :
il manquait un morceau de code

bonjour,

voici une modification du code de MichD, qui devrait permettre de gérer des 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) A s String, x As Variant, i As Integer, utilisateur As Integer
Static Compteur As Integer

Call ThisWorkbook.Enable_Macro
MotDePasse(1) = "MichD": colcritère(1) = "K:K": critère(1) = "1 07": 'Mot de passe pour ouvrir le fichier
MotDePasse(2) = "Manu": colcritère(2) = "K:K": critère(2) = "25 0": '
MotDePasse(3) = "Nico": colcritère(3) = "B:B": critère(3) = "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é": Exi t For
Next i
Loop Until x = "trouvé"


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 :
> 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 t aper
> 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 reme ttre
> tout en normal.
> Ca m'à l'air assez compliqué...
>
> Merci de votre aide
>
> Manu
Manu
Le #24155921
"MichD" jemj0i$1bh$
| surtout ce que viens faire cette feuil4 invisible...

**** 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à!



Super idée !


| 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?



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é.

**** 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.



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........




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$
J'ai omis cette ligne de code comme "dernière ligne" de la procédure
"Workbook_Open" dans le ThisWorkbook

Juste avant End Sub, inscrire : Me.Saved=true



MichD
------------------------------------------




Publicité
Poster une réponse
Anonyme