Proteger sans sauvegarder??

Sébastien

XLDnaute Junior
Bonjour

J essaye de vérouiller un peu une 'application' que j'ai crée.

Je vais droit au but : on navigue grâce à des menus, pour sortir de l appli on passe par un menu(seule solution pour l utilisateur) : Quitter ( le choix est laissé à l utilisateur d'enregister ou non)

La protection de mon classeur c est laisser visible qu une seule feuille de calcul dite 'd'accueil'.

En passant par l'option quitter en enregistrant, je masque toutes les feuilles sauf celle-là et et je protege mon classeur par mot de passe.
SI je quitte sans enregistrer, le classeur n est pas protege et l utilisateur a accès à toutes les feuilles lors de la prochaine ouverture, ce qui n est pas souhaitable.

Est il possible de prendre en compte la protection du classeur, sans les dernières modifications ( Cas du Quitter sans enregistrer??)??

Merci d avance

Sébastien
 

coco_lapin

XLDnaute Impliqué
Bonjour le forum.

Pour ma part ce que je fais:
A l'ouverture du classeur je récupère le logon de l'utilisateur et je réalise un traitement en fonction de l'utilisateur (je masque ou pas...).

Ainsi je n'ai pas besoin de démasquer des onglets ou déverrouiller des parties lorsque j'ouvre le classeur.

Voici le code qui me permet de récupérer le logon.
Ensuite dans ta ou tes procédures tu exploites la valeur de RecupLogon.



Declare Function GetUserName Lib 'advapi32.dll' Alias 'GetUserNameA' (ByVal lpBuffer As String, lpLen As Long) As Long

Public Function RecupLogon() As String
Dim cCh As String, nLen As Long, nRetour As Long
nLen = 199
cCh = String$(200, 0)
nRetour = GetUserName(cCh, nLen)
If nRetour 'différent voir1' 0 Then
While Asc(Mid$(cCh, nLen, 1)) = 0
nLen = nLen - 1
Wend
RecupLogon = Left$(cCh, nLen)
Else
RecupLogon = ''
End If


End Function

(1) à remplacer par inférieur puis supérieur sinon le message ne peut être envoyé.
 

Sébastien

XLDnaute Junior
Bonsoir

Merci pour ta réponse.
Je suis dans la même situation que toi, mais si tu ouvres le classeur sans activer les macros, ton code n execute pas et tout est visible!!

D'où ma question, comment prendre en compte la protection du classeur sans les changements de la feuille??

Ou comment ne pas pouvoir ouvrir le classeur si les macros sont desactivés?

Merci

A+

Sébastien
 

coco_lapin

XLDnaute Impliqué
Bonjour Sébastien et le forum.

Par 'à l'ouverture du classeur' cela veut dire sur l'évenement Workbook_Open(). Le code correspondant s'activera automatiquement.

Exemple ci-dessous:

Tu trouves Workbook_Open() dans ThisWorkbook

Private Sub Workbook_Open()
Tu récupères le user
si c'est pas ton user alors tu masques ou verrouilles comme tu veux.

End Sub
 

coco_lapin

XLDnaute Impliqué
Bonsoir Sebastien.

Nous n'arrivons pas à nous comprendre. Je vais donc t'envoyer des classeurs de démo et tu verras que mon code s'exécute.

Dans cette première démo je ne t'ai pas donné les droits d'accès, donc tu te fera jeter. Par contre sur mon poste je peux ouvrir mon classeur (je me suis au moins donné les droits).

(dans mon prochain courrier tu pourras ouvrir le classeur et tu regarderas le code) [file name=Prottotale.zip size=10766]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Prottotale.zip[/file]

Message édité par: coco_lapin, à: 04/01/2006 22:03

Message édité par: coco_lapin, à: 04/01/2006 22:19
 

Pièces jointes

  • Prottotale.zip
    10.5 KB · Affichages: 15

coco_lapin

XLDnaute Impliqué
Maintenant avec un classeur que tu pourras ouvrir et visualiser le code qui se trouve dans ThisWorkbook. [file name=Protpartielle.zip size=12096]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Protpartielle.zip[/file]
 

Pièces jointes

  • Protpartielle.zip
    11.8 KB · Affichages: 12

Sébastien

XLDnaute Junior
Bonsoir tout le monde.

D'abord merci de m'avoir transmis tes versions,et j'avais bien compris ta maniière de procéder, et ton classeur n est pas protégé...explication:

Si tu es dans la même configuration que moi, c est a dire le niveau de sécurité moyen concernant l execution des macros, lorsque tu ouvres un classeur qui en contient une, un message t invite à activer ou non les macros.

1) tu les actives, donc avec ton classeur, j ai un message qui me dit que je n ai pas les droit sur ce classeur et qui m invite a contacter l administrateur. On est d accord.

2) tu n actives pas les macros, ton classeur s ouvre, et tu as accès a toutes les feuilles...donc c est pas protégé?!

Moi je souhaite que le classeur ne s ouvre pas si les macros ne sont pas activées, hors il faut du code pour vérifier ça....et comme il n est pas activé, il ne s executera pas...ca boucle!!

Sébastien
 

coco_lapin

XLDnaute Impliqué
Bonsoir Sébastien et le forum.

Je viens de comprendre le sens de 'un message te demande d'activer ou pas les macros'.
En règle générale sur mes postes de travail je désactive cette fonction et du coup je ne l'avais plus en mémoire.

Les classeurs que je t'ai passés sont des exemples pour que tu visualises le code. Je ne me suis pas amusé à soit protéger le classeur ou des onglets ou interdire l'ecriture sur certaines zones suivant le profil.

Dans mes classeurs originaux de base le classeur est verrouillé, la plupart des onglets sont masqués en Veryhide. Donc si les macro ne sont pas activées le classeur n'est pas utilisable.

Lorsqu'un utilisateur (qui est sensé utiliser ce classeur) ouvre ce classeur il active les macros puisqu'il veut travailler. Le code s'active et je lui donne les droits que je veux en détectant son nom ou users ou logon.

Moi quand j'ouvre le classeur j'active les macros, le code s'active et j'ai accès à tout.

Ce qu'il faut penser c'est de verrouiller le classeur, les onglets... à la fermeture du classeur sur l'événement 'fermeture du classeur' car sinon un jour ou l'autre tu oubliras de verrouiller manuellement et en plus c'est pénible de le faire à chaque coup que tu as une modif à réaliser.

Si pb tu me fais signe, mais je crois que nous commençons à nous comprendre. Non?
 

coco_lapin

XLDnaute Impliqué
Bonjour Sébastien et le forum.

J'ai trouvé ceci qui est la réponse à ta première question. A la maison j'ai Excel 97, je ne peux donc pas l'essayer.
Tu me tiens au courant si ça marche?


'Je distribue un classeur avec des macros. Comment éviter le message d'alerte macro à l'ouverture pour les utilisateurs ? '

Ce lien n'existe plus
 

coco_lapin

XLDnaute Impliqué
De plus regarde les autres astuces d'Excelabo : Protection, c'est très riche . Pour ma part je vais exploiter.

Ceci prouve qu'en aidant on apprend aussi beucoup donc je te remercie d'avoir envoyé ta question sur ce forum.


Dans le chapitre les messages d'alertes d'Excel deux paragraphes traitent du même sujet.

Message édité par: coco_lapin, à: 07/01/2006 12:41
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet