Masquer et vérouiller une colonne par un mot de passe
Bonjour,
Dans le tableau ci-joint je souhaite que la colonne PV soit masquer et vérouillée par un mot de passe.
Ce tableau est à disposition de plusieurs personnes, mais seules 2 doivent avoir accès à cette colonne.
Je ne souhaite pas vérouiller la feuille ni le fichier, que la colonne.
En plus ce fichier doit être accessible par du EXCEL 2003-2007, en plus du 2010.
Merci pour votre aide
A bientôt
Bonsoir,
Tu enlèves le vérouillage de toutes les cellules par click droit/onglet protection/décocher le vérouillage ou équivalent de ça dans Excel 2010. Tu masques la colonne à ne pas divulger à tous. Tu protèges la feuille avec un mot de passe. Tu communiques le MDP uniquement aux personnes qui doit voir cette colonne. Autrement, il faut prévoir une solution par macro.
Merci Raja pour ta réponse.
Malheureusement elle ne répond pas à ma question.
Le tableau doit rester accessible à tout le monde, puisque plusieurs personnes doivent pouvoir le compléter et le faire vivre tous les jours.
Si je protège la feuille avec un mot de passe, les personnes non habilitées ne pourront modifier aucune cellule, ni faire vivre le tableau.
Moi je veux que seule la colonne PV soit non accessible.
Quelle est ta proposition de macro ?
Merci pour votre aide
Bonjour Compta
La solution de Raja est la seule possible pour ce que tu souhaites
Le tableau doit rester accessible à tout le monde, puisque plusieurs personnes doivent pouvoir le compléter et le faire vivre tous les jours.
Je ne comprends pas, si tu suis la méthode indiquée par Raja, le tableau sera accessible !?
Si je protège la feuille avec un mot de passe, les personnes non habilitées ne pourront modifier aucune cellule, ni faire vivre le tableau.
Bien sur que SI, je pense que tu ne sais pas te servir d'Excel
En tout cas certainement pas par macro
J'aime les nouveaux venus qui pensent tout savoir, surtout devant un membre impliqué
A+
Salut BrunoM45,
Merci pour ton soutien à tous les intervenants bénévoles. Je comprends ton agacement vis à vis des remarques qu'on reçoit de temps à autres. Mais personnellement je suis indifférent. Sinon je ne pourrai pas continuer.
J'ouvre une parenthèse ici pour te dire ce que je pense après quelques années de service sur le site. Les demandeurs ne peuvent pas connaître ce que nous sommes et nos parcours etc. L'inverse est vrai également. Ils attendent qu'une seule chose, c'est qu'on leur donne rapidement ce qu'ils attendent. Mail, c'est là qu'il y a souvent des soucis. Il y a peu de gens expliquent clairement ce qu'ils ont envie d'obtenir ou bien ils ne nous donnent pas toutes les clés du probème voire ne fournissent pas le support sur lequel on pourra travailler et rendre la copie propre.
Une autre chose que j'ai remarquée, malgré les nombreuses possibiltés offertes par Excel pour résoudre la plupart des problèmes posés, en général, les auditeurs veulent une macro. Ils veulent peut être apprendre ou c'est plus chic, tendance etc. de dire que j'ai un programme qui marche automatiquement. Peu importe, je vais essayer de donner une solution par macro (malgré que je ne suis pas spécialiste en VBA, je sais qu'il y des champions sur notre site) à notre ami commun et je ferme la parenthèse.
Bonjour compta,
Il faut faire dans l'ordre les choses suivantes :
1. Sélectionner toutes les cellules/clique sur le carré à gauche de l'entête colonne A et au dessus de l'entête de la ligne 1
2. Clique droit/Format de cellule/Onglet Protection/décocher l'option "Vérrouillée" si elle est cochée
3. Insérer le code suivant dans le module "ThisWorkbook" :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheets("Feuil1").Range("G:G").EntireColumn.Hidden = False Then
Sheets("Feuil1").Range("G:G").EntireColumn.Hidden = True
End If
Sheets("Feuil1").Protect "mdp"
End Sub
Private Sub Workbook_Open()
reponse = InputBox("Saisir le mot de passe pour accès complet ou cliquer sur annuler", "Mot de passe")
If reponse <> "" And reponse = "mdp" Then
Sheets("Feuil1").Unprotect reponse
If Sheets("Feuil1").Range("G:G").EntireColumn.Hidden = True Then
Sheets("Feuil1").Range("G:G").EntireColumn.Hidden = False
End If
End If
End Sub4. Le mot de passe donné dans le code "mdp" doit être remplacé par un VRAI mot de passe.
5. Il faut aussi protéger la macro dans l'éditeur de VBA, (là vous insérez les codes ci-dessus) par Outils/Propriétés de VBAProject/Onglet Protection/cocher l'option "Vérouiller le projet pour l'affichage"/mettre un mot de passe
6. Enregistrer le fichier.
7. Tester
Remarque non moins importante : Inutile de dire que les personnes qui peuvent lire la colonne masquée doit avoir le mot de passe pour déprotéger la feuille. Bien sur, le mot de passe pour visualiser la macro ainsi changer éventuellement le mot de passe (de la feuille) dans la macro, il n'y a que le créateur de la macro qui le détient. Ouf...
Bonjour Raja,
J'aimerai bien savoir si vous avez une solution pour protéger uniquement les colonnes masquer ?
Car votre solution protège le modification du format de tous colonnes de la feuille. mon besoin est de protéger uniquement la modification de format des colonnes masquer. et comme ça les utilisateur qui n'ont pas le MDP ne peuvent ni voir ni démasquer ces colonnes mais en contre partir ils peuvent tous modifier comme c'est rien n'a été protéger.
J'ai essayer avec ce code :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheets("Feuil1").Range("G:G").EntireColumn.Hidden = False Then
Sheets("Feuil1").Range("G:G").EntireColumn.Hidden = True
End If
Sheets("Feuil1").Range("G:G").Protect "2015"
End Sub
Private Sub Workbook_Open()
reponse = InputBox("Saisir le mot de passe pour accès complet ou cliquer sur annuler", "Mot de passe")
If reponse <> "" And reponse = "2015" Then
Sheets("Feuil1").Range("G:G").Unprotect reponse
If Sheets("Feuil1").Range("G:G").EntireColumn.Hidden = True Then
Sheets("Feuil1").Range("G:G").EntireColumn.Hidden = False
End If
End If
End Sub
Je souhaite que j'ai bien expliqué mon problème???
Et je m'excuse pour mon français
Bonjour Keurkneus
Inutile et compliquer de faire ça pas code VBA, tu peux simplement le faire en protégeant ta feuille
Fichier ->Protéger la feuille
Décocher si ce n'est pas déjà fait : Format de colonnes
A+
Raja a écrit :Salut BrunoM45,
Merci pour ton soutien à tous les intervenants bénévoles. Je comprends ton agacement vis à vis des remarques qu'on reçoit de temps à autres. Mais personnellement je suis indifférent. Sinon je ne pourrai pas continuer.
J'ouvre une parenthèse ici pour te dire ce que je pense après quelques années de service sur le site. Les demandeurs ne peuvent pas connaître ce que nous sommes et nos parcours etc. L'inverse est vrai également. Ils attendent qu'une seule chose, c'est qu'on leur donne rapidement ce qu'ils attendent. Mail, c'est là qu'il y a souvent des soucis. Il y a peu de gens expliquent clairement ce qu'ils ont envie d'obtenir ou bien ils ne nous donnent pas toutes les clés du probème voire ne fournissent pas le support sur lequel on pourra travailler et rendre la copie propre.
Une autre chose que j'ai remarquée, malgré les nombreuses possibiltés offertes par Excel pour résoudre la plupart des problèmes posés, en général, les auditeurs veulent une macro. Ils veulent peut être apprendre ou c'est plus chic, tendance etc. de dire que j'ai un programme qui marche automatiquement. Peu importe, je vais essayer de donner une solution par macro (malgré que je ne suis pas spécialiste en VBA, je sais qu'il y des champions sur notre site) à notre ami commun et je ferme la parenthèse.
Bonjour compta,
Il faut faire dans l'ordre les choses suivantes :
1. Sélectionner toutes les cellules/clique sur le carré à gauche de l'entête colonne A et au dessus de l'entête de la ligne 1
2. Clique droit/Format de cellule/Onglet Protection/décocher l'option "Vérrouillée" si elle est cochée
3. Insérer le code suivant dans le module "ThisWorkbook" :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If Sheets("Feuil1").Range("G:G").EntireColumn.Hidden = False Then Sheets("Feuil1").Range("G:G").EntireColumn.Hidden = True End If Sheets("Feuil1").Protect "mdp" End Sub Private Sub Workbook_Open() reponse = InputBox("Saisir le mot de passe pour accès complet ou cliquer sur annuler", "Mot de passe") If reponse <> "" And reponse = "mdp" Then Sheets("Feuil1").Unprotect reponse If Sheets("Feuil1").Range("G:G").EntireColumn.Hidden = True Then Sheets("Feuil1").Range("G:G").EntireColumn.Hidden = False End If End If End Sub4. Le mot de passe donné dans le code "mdp" doit être remplacé par un VRAI mot de passe.
5. Il faut aussi protéger la macro dans l'éditeur de VBA, (là vous insérez les codes ci-dessus) par Outils/Propriétés de VBAProject/Onglet Protection/cocher l'option "Vérouiller le projet pour l'affichage"/mettre un mot de passe
6. Enregistrer le fichier.
7. Tester
Remarque non moins importante : Inutile de dire que les personnes qui peuvent lire la colonne masquée doit avoir le mot de passe pour déprotéger la feuille. Bien sur, le mot de passe pour visualiser la macro ainsi changer éventuellement le mot de passe (de la feuille) dans la macro, il n'y a que le créateur de la macro qui le détient. Ouf...
Bonjour à tous,
Après 3 ans votre code est toujours utile
Merci infiniment
Bonjour
j'ai peut-être pas bien tout suivi,
mais regarde si cela te convient, pas de formule, pas de vba
trop simple peut-être, c'est protéger mais pas de mot de passe, à ta guise....
en fait c'est la même solution que RAJA
Bonjour CORDIA5, merci de m’intéresser a mon message, je vais tester
Cordialement
Shanon
Bonjour CORDIA5,
C'est parfait mais c'est quoi l'astuce !
Quelle manipulation dois je fasse si je veux que les autres colonne seront en lecture seule (pas toutes les cellules)
Merci encore . . .
Bonjour
que veux tu faire exactement ?
Re-bonjour,
J'ai un fichier plein de renseignements, quelque colonnes doivent être cachées, d'autres en lecture seules le reste seront vide pour saisir.
P.S: ça sera gentil de ta part si vous m'expliquer la méthode a faire
Merci
pour commencer, affiches toutes les colonnes normalement,
ensuite sélectionne la colonne que touhaites masquer, clic droit, "masquer".
refait la manip pour l'ensemble des colonnes . a faire une par une si elles ne sont pas accollées.
ensuite, onglet "REVISION", puis "PROTEGER FEUILLE" saisis ou pas un mot de passe.
tu verras alors que les colonnes masquées, sont forcéments cachées mais en plus que tu ne peux pas les afficher, sauf si tu fais oter mot de passe et que tu le connaisse bien entendu.
j'espère que c'est clair, sinon, fais moi signe.
bon courage.
CORDIA5
Merci beaucoup CORDIA5 de m'avoir expliquer étape par étape, sauf que je vois pas ou je doit marqué cette discussion comme résolue par ce que ce n'est pas moi qui l'a commencer
Quand tu fais répondre, dans la case ou tu saisis ton message, tu as une petite coche en haut à droite me semble t-il.
@+