rendre le contenu d'une feuille invisible

Z

zicinho

Guest
boujour à tous

je voudrais faire apparai^tre une feuille sous excel mais que son contenu reste vierge jusqu'a l'enregistrement d'un mot de passe.

Qui peux m'aider

merci d'avance
 
J

jacquesderyes

Guest
Bonjour zicinho et les amis du forum

La seule astuce que je connaisse pour rendre invisible le contenu des cellules d'une feuille consiste à mettre les contenus en blanc!puis de les remettre en noir pour les exploiter.
Donc à l'ouverture du workbook(sub auto_open)
Sub masquer
Sheets("mafeuille").UsedRange.Select

For Each Cell In Selection
Cell.Font.ColorIndex = 2
Next Cell

Range("A1").Select
End Sub******------------->plus rien n'est visible dans les cellules


Dans la procédure du mot de passe

Sheets("mafeuille").UsedRange.Select
For Each Cell In Selection
Cell.Font.ColorIndex = 0
Next Cell

Range("A1").Select ----------->le contenu des cellules se met en noir et devient visible.
Il y a peut_être une formule plus simple comme par exemple masquer la feuille à l'ouverture et l'afficher avec la procédure du mot de passe?D'autres astuces éxistent sans doute !

Bien amicalement

jacques de ryes
 
P

Pascal76

Guest
Salut zincinho

Peux-tu développer ton besoin exact s'il te plait.

Ce que tu veux exactement avec l'utilisateur, l'affichage vierge de la feuille est-elle obligatoire ou commme le dit Jacques la masquer juusqu'au mot de passe?

Pascal
 
M

Moa

Guest
Salut les gars !

Il y a une technique assez simple !

1) Tu fais ta feuille Normalement.

2) Avec Menu Edition/Déplacer ou copier une feuille, tu fais une copie conforme de ta feuille.

3) Ta copie conforme, tu éffaces tout les contenus des cellules, sans toucher ni au format ni à la mise en page ni à rien d'autre.

4) Tu masques ta feuille originale qui elle reste complète.

5 ) Tu fais une macro qui fais un Copier/Coller/Spécial Valeurs de ta feuille originale vers son double.

Et voilà, quand les utilisateurs valide le mot de passe, tu lances ta macro.

Ligne de code pour la copie "Spécial/Valeurs"

Sheets("FeuilleDesUtilisateurs").Range("TaPlage")=Sheets("TaFeuilleOriginale").Range("LaMêmePlage").Value


C'est hyper simple et rapide à mettre en place.

@ +

Moa
 
Z

zicinho

Guest
merci a tous ca fait plaisir de voir autant d'interet et d'aide.

le but rechercher est de faire parai^tre la feuille completement vierge afin d'empecher meme de comprendre son but. La masquer hélas ne suffit pas j'ai besoin de confidentialisé au maximum chacune des feuilles du classeur.

grace a vous j'avance pas a pas et je vous en remercie
 
Z

zicinho

Guest
j'ai regardé votre fonctionnement à juliette et toi et c pas mal du tout mais un pb se présente :

avez vous remarqué que si l'on reste appuyé sur un onglet d'une feuille on peux lire le contenu alors a moins de supprimer les onglets dans le mode options d'excels n'y a t'il pas un moyen plus approprié sous vba ??
 
M

Moa

Guest
Salut !

Ce que je ne compremd pas bien, c'est que le fait de cacher ta feuille ne suffise pas.

Si elle est cachée en VeryHidden et que de plus tu protèges ton code Vba, il n'y aucun moyen de voir cette feuille, sauf avec un Log qui casse les mots de passe.

Sinon, tu as un autre moyen plus long et complexe :

C'est que ta feuille se remplisse avec des procédures, dans la quelle tout serait écrit.

Ou encore plus protégé :

Au lieu de remplir une feuille Excel, il faudrait que cela remplisse un tableau fait sur un userform et que ton userform soit recouvert en totalité d'un Label Opaque.

Et en fait le principe est de découvrir ron userform en redimensionnant le Label.

C'est un sacré boulot...Mais possible.

@ +

Moa
 
Z

zicinho

Guest
very hidden je l'avoue ne me dit rien mais lorsque je masque avec excel + une protection de la feuille et bien j'arrive a faire sauté le verrou pas un simple copier coller !!!! donc ca ne suffit hélas pas.

le lien que m'a fournit pascal est très interressant j'essaye de l'adapter à mon utilisation.

merci pour votre aide
 
L

LaurentTBT

Guest
Bonjour à tous.

Voici une autre idée: bloquer la feuille sur la colonne IV

Pour ceci, je mets ce code à l'ouverture du classeur:

Private Sub Workbook_Open()
With Worksheets("La Feuille à cacher")
Range("IV1").Activate
Range("IV1").ColumnWidth = 255
End With
End Sub

Et ce code dans la feuille dont tu veux masquer le contenu ():

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveWindow.DisplayHorizontalScrollBar = False
If Target.Column < 256 Then Target.EntireRow.Range("IV1").Activate
End Sub

Il ne te reste plus qu'à adapter tout cela, et faire en sorte que ce ne soit plus exécuté lorsque le mot de passe a été fourni!

Voilà, c'est du bidouillage, mais cela t'aidera peut-être.

Salut.
Laurent.
 
M

Moa

Guest
Si ta feuille est en VeryHidden, l'utilisateur ne peut la faire apparaitre qu'en passant par le Vbe et si ton projet Vba est protégé aussi, l'utilisateur ne voit même pas les modules.

Donc, pas moyen de faire un copier/coller....!

@ +

Moa
 

Discussions similaires

Réponses
26
Affichages
586

Statistiques des forums

Discussions
313 020
Messages
2 094 434
Membres
106 027
dernier inscrit
DonSparks