Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1813 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  document excel MdP ou lecture seule avec interdiction d'enregistrer

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

document excel MdP ou lecture seule avec interdiction d'enregistrer

n°1979326
03celine03
Posté le 31-03-2010 à 10:32:27  profilanswer
 

Bonjour à tous,
 
J'ai un soucis, j'ai un document Excel pour le suivi du personnel (horaires, conges). Je lui ai mis un mot de passe ou possibilité de regarder en lecture seule.
Seulement un petit rigolo, l'ouvre en lecture seule et l'enregistre sous... donc à la réouverture je n'ai plus de mot de passe et je dois veridier si les données n'ont pas été modifiées... donc grosse perte de temps et de patiente pour moi !!
 
Serait-il possible par le biais d'une MsgBox ou autres :
A l'ouverture du document la feuille soit cachée, une MsgBox saffiche est demande mot de passe, lecture seule, annuler (classique comme la protection standard) mais je désirerai que si la personne click qur lecture seule ne puisse que visualiser le document comme une image... ou le voix normalement mais ne puisse l'enregister sous...
 
Merci de vos réponse cela va bcp m'aider !!!!
 
Céline

mood
Publicité
Posté le 31-03-2010 à 10:32:27  profilanswer
 

n°1979355
Arcbitre
J'aime ben ça moi, c'est bon!
Posté le 31-03-2010 à 11:32:36  profilanswer
 

Bonjour;
 
  Pourquoi ne pas enregistrer ce document sous un format difficile à modifier, pour le mettre à disposition?
  Je pense à du PDF, ou du Tif. Ce document serait facile à consulter, mais difficile à modifier!

n°1979420
03celine03
Posté le 31-03-2010 à 12:30:43  profilanswer
 

Comme je fais des modifications tous les jours, il est plus pratique pour moi de tout avoir sur le réseau ! Les personnes qui veulent voir où ils en sont, ont accès directement, cela évite l'oubli de la mise à jour du document en .pdf ou .tif... et donc des réclamations !
 
Merci quand même !!

n°1979570
Arcbitre
J'aime ben ça moi, c'est bon!
Posté le 31-03-2010 à 15:58:42  profilanswer
 

Une possibilité:
 - Créer un fichier Excel vide, avec juste un bouton "Importer".
   Lorsque l'utilisateur clique sur le bouton, une macro importe les feuilles de ton fichier original dans ce fichier vide.
   Lorsque l'utilisateur ferme le fichier, les feuilles importées sont détruites.
   Le fichier original est bien au chaud, dans un répertoire ouvert en écriture pour toi seulement.
 

n°1979578
Arcbitre
J'aime ben ça moi, c'est bon!
Posté le 31-03-2010 à 16:14:10  profilanswer
 

Pour empecher l'enregistrement sous, dans le module ThisWorkbook, voir l'évènement BeforeSave
Mais je ne suis pas sûr que ce soit suffisant...
 

Code :
  1. Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  2.    
  3.     MsgBox ("Il est interdit de copier ce fichier." )
  4.     Cancel = True
  5.    
  6. End Sub


 
Depuis l'exploreur Windows, rien n'empêche un utilisateur de copier/coller le fichier.
Personnellement, je préfère la solution que je suggère: un fichier vide, avec un bouton d'importation.


Message édité par Arcbitre le 31-03-2010 à 16:16:34
n°1979619
dje69r
Arme de distraction massive
Posté le 31-03-2010 à 17:18:48  profilanswer
 

Bonjour
 
Avec ton code Arcbitre, elle ne pourra plus non plus enregistrer ses modifs... Dommage...
 
Essaie quelque-chose comme ceci :

Code :
  1. Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  2.     If ActiveWorkbook.ReadOnly = True Then
  3.         'empêche l'enregistrement
  4.         SaveAsUI = False
  5.         Cancel = True
  6.     End If
  7. End Sub


 
En gros, si le fichier ouvert est en lecture seule (donc le mot de passe n'a pas été saisi) impossible d'enregistrer.


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
n°1979695
otobox
Maison fondée en 2005
Posté le 31-03-2010 à 23:07:08  profilanswer
 

Arcbitre a écrit :

Une possibilité:
 - Créer un fichier Excel vide, avec juste un bouton "Importer".
   Lorsque l'utilisateur clique sur le bouton, une macro importe les feuilles de ton fichier original dans ce fichier vide.
   Lorsque l'utilisateur ferme le fichier, les feuilles importées sont détruites.
   Le fichier original est bien au chaud, dans un répertoire ouvert en écriture pour toi seulement.
 


La solution la plus simple a été donnée ici... il suffit de placer le fichier dans un répertoire où seul le propriétaire du fichier a les droits en écriture. Pas besoin de macro ou de protection pour ça !


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
n°1979759
dje69r
Arme de distraction massive
Posté le 01-04-2010 à 08:59:50  profilanswer
 

La solution la plus simple... Tout dépend de la taille, et de la politique de sa société...
 
Je ne pense pas qu'une comptable ait accès aux droits des dossiers sur le serveur de l'entreprise. Derrière il faut demander à l'administrateur reseau, s'il y en a un de le faire, avec autorisation de la hierarchie. S'il n'y en a pas, appeler la société qui gere le parc info... Cout supplémentaire etc.
 
Et je ne parle pas du bruit/tapage généré dans la société pour un simple fichier Excel de congés...
 
Je ne suis pas certain que ca soit tellement plus simple qu'une pov' macro de 6 lignes...


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
n°1979859
03celine03
Posté le 01-04-2010 à 10:49:08  profilanswer
 

Merci pour votre aide !
J'essaie la formule de dje69r mais rien ne se passe.
Je suis rentrée dans VBA, This WorkBook, j'ai selectionné WorkBook et BeforeSave, puis j'ai copier/coller la formule.... est rein... pas d'interdiction d'enregistrer en lecture seule !!
Je suis rouillée ça va faire 6 ans que je n'ai pas fait de VBA......
Qu'est-ce-que j'ai oublié ?
Merci

n°1979914
dje69r
Arme de distraction massive
Posté le 01-04-2010 à 12:18:54  profilanswer
 

Hello
 
Il faut mettre un mot de passe pour Modification.
Ce mot de passe tu le donnes pas.
 
Les gens vont ouvrir le fichier, et ca va leur demander le mot de passe qu'ils n'ont pas. Ils doivent obligatoirement cliquer sur "Lecture seule" pour ouvrir le fichier.
Le fichier etant donc ouvert en lecture seule, ils ne pourront pas faire un "Enregistrer sous"
 
Cordialement


Message édité par dje69r le 01-04-2010 à 12:19:08

---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
mood
Publicité
Posté le 01-04-2010 à 12:18:54  profilanswer
 

n°1979929
03celine03
Posté le 01-04-2010 à 12:47:47  profilanswer
 

dje69r, c'est bien comme cela que je protege mon document pour Modification !
 
Et quand je me mets en lecture seule, et si j'appuye sur enregistrer, il me propose quand même d'enregistrer mon doc mais sous un autre nom ??? Que faire !!

n°1979949
dje69r
Arme de distraction massive
Posté le 01-04-2010 à 13:50:47  profilanswer
 

Bah écoute, moi sous Excel 2003, pas de souci.
 
Si le fichier est ouvert en lecture seule, si je clique sur la disquette, j'ai un message me disant "Fichier est en lecture seule. Pour enregistrer une copie, cliquez sur OK etc." mais si je clique sur OK, rien ne se passe.
Idem, avec les menu "Fichier", "enregistrer" et "enregistrer sous"
 
Fichier exemple ici
 
Edit : Sous Excel 2007, idem, ca fonctionne parfaitement. Que ca soit la disquette en haut, le menu Office enregistrer ou enregistrer sous (tous les types sauf pdf)


Message édité par dje69r le 01-04-2010 à 13:55:21

---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
n°1979957
03celine03
Posté le 01-04-2010 à 13:57:15  profilanswer
 

C'est marrant, j'ai essayé avec ton classeur et je peux l'enregistrer !!!!!

n°1979958
dje69r
Arme de distraction massive
Posté le 01-04-2010 à 13:58:21  profilanswer
 

Quelle version d'Excel as tu ?
Les macros sont elles activées ?


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
n°1979963
03celine03
Posté le 01-04-2010 à 14:02:52  profilanswer
 

c'est le 2007, et normalement les macros sont acrifs... enfin je vais vérifier !!

n°1979968
03celine03
Posté le 01-04-2010 à 14:12:55  profilanswer
 

les macros n'étaient pas actifs ! Je viens de les activer et tu as raison ça fonctionne !! Mais ce qui veut dire que si quelqu'un a les macros non actifs, il pourra modifier mon document ??!

n°1979970
dje69r
Arme de distraction massive
Posté le 01-04-2010 à 14:16:09  profilanswer
 

C'est le principe des macros... Pour que ca "marche" faut qu'elles soient activent...


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
n°1979992
03celine03
Posté le 01-04-2010 à 14:36:01  profilanswer
 

Merci beaucoup pour ton aide !! Je vais faire le tour des ordi et activer leurs macros !!!!

n°1980013
dje69r
Arme de distraction massive
Posté le 01-04-2010 à 14:54:57  profilanswer
 

:jap:


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
n°1980141
otobox
Maison fondée en 2005
Posté le 01-04-2010 à 18:13:19  profilanswer
 

dje69r a écrit :

La solution la plus simple... Tout dépend de la taille, et de la politique de sa société...


OK, mais je pense que si le classeur est important, il ne sera pas difficile de faire un sous répertoire avec les bonnes options.
Parce que "faire le tour des poste pour activer les macros", il suffit qu'un petit malin s'amuse à annuler les macros (après tout, ce n'est pas stupide pour des raisons de sécurités) et il a un plein accès au classeur. Ca reste du bricolage.
Je persiste et signe dans le choix d'un répertoire en écriture seul pour les simples utilisateurs.


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
n°1980261
03celine03
Posté le 02-04-2010 à 10:17:08  profilanswer
 

Ok, OtobOx, mais comment tu fais !
Quel est le code pour la macro ? Nous avons un serveur, et je n'ai aucun droit ! Donc il faudrait que je mette mon doc sur le "commun" completement verouillé ! et que je crée en sus un doc au nom quasiment similère pour que les gens si retrouvent ! Ce doc je lui insère un bouton "Visualiser/Importer", jusque l'à aucun soucis pour moi... mais après ???! Je ne sais plus !
Merci d'avance

n°1980305
dje69r
Arme de distraction massive
Posté le 02-04-2010 à 11:26:36  profilanswer
 

otobox a écrit :


OK, mais je pense que si le classeur est important, il ne sera pas difficile de faire un sous répertoire avec les bonnes options.
Parce que "faire le tour des poste pour activer les macros", il suffit qu'un petit malin s'amuse à annuler les macros (après tout, ce n'est pas stupide pour des raisons de sécurités) et il a un plein accès au classeur. Ca reste du bricolage.
Je persiste et signe dans le choix d'un répertoire en écriture seul pour les simples utilisateurs.


Je ne dis pas qu'en terme de sécurité ce n'est pas le meilleur choix... En terme de faisabilité...
Faut trouver un juste milieu...
Et quand on a pas accès au serveur... Il ne reste plus bcp de solution...


---------------
Plus tu pédales moins vite, moins tu avances plus vite — SuperLoustic ! La radio des Loustics !
n°1980402
Arcbitre
J'aime ben ça moi, c'est bon!
Posté le 02-04-2010 à 15:02:34  profilanswer
 


Bon, juste pour te remettre le pied à l'étrier, cette macro qui copie/colle depuis la feuille d'un classeur dans la feuille du classeur ouvert.
 
Crée un nouveau fichier, insère un bouton 'cmdView' et colle le code suivant dans sa procédure cmdView_Click

Code :
  1. Private Sub cmdView_Click()
  2. Dim objSourceWkb As Workbook, objDestWkb As Workbook
  3. Dim objSourceSht As Worksheet, objDestSht As Worksheet
  4.     ' Ouverture du fichier original.
  5.     Workbooks.Open Filename:="C:\Mes documents\Conges\abcdef", ReadOnly:=True
  6.    
  7.     ' Classeur source:
  8.     Set objSourceWkb = Workbooks("abcdef" )
  9.    
  10.     ' Feuille source
  11.     Set objSourceSht = objSourceWkb.Worksheets("Feuil1" )
  12.    
  13.     ' Classeur destination
  14.     Set objDestWkb = Workbooks("Conges.xls" )
  15.    
  16.     ' Feuille destination
  17.     Set objDestSht = objSourceWkb.Worksheets("Feuil1" )
  18.    
  19.     ' Copier / Coller
  20.     objSourceSht.Copy
  21.     objDestSht.Paste
  22.    
  23.     ' Fermeture classeur source.
  24.     objSourceWkb.Close False
  25.    
  26. End Sub


 
Je l'ai fait à l'arrache. Il y a certainement des choses à sécuriser, mais ça marche chez moi.
 
Nota1:  
Le nom du fichier original est baptisé sans relation avec le contenu et ne porte pas d'extension. C'est pour éviter que l'utilisateur lambda ne voit tout de suite que c'est un fichier Excel.
 
Nota2:
Si le rigolo persiste, tu peux en toucher 2 mots à son chef ou au patron. A un moment donné, saboter le boulot des autres, c'est répréhensible.

n°1980509
otobox
Maison fondée en 2005
Posté le 02-04-2010 à 18:54:35  profilanswer
 

03celine03 a écrit :

Ok, OtobOx, mais comment tu fais !
Quel est le code pour la macro ? Nous avons un serveur, et je n'ai aucun droit ! Donc il faudrait que je mette mon doc sur le "commun" completement verouillé ! et que je crée en sus un doc au nom quasiment similère pour que les gens si retrouvent ! Ce doc je lui insère un bouton "Visualiser/Importer", jusque l'à aucun soucis pour moi... mais après ???! Je ne sais plus !
Merci d'avance


Comment je fais ? Je demande au service S.I., via mon responsable hiérarchique, de bien vouloir me créer un répertoire en lecture/écriture pour moi et en lecture seul pour les autres. Bien argumenté, il n'y a aucune raison pour qu'ils refusent de le faire, car ça ne coûte que quelques minutes pour le faire.

 

Si tu as affaire à des malcomprenants, des qui ne veulent rien savoir et qui font de l'informatique pour eux même et pas pour les utilisateurs, des qui oublient que dans S.I. il y a le mot "Service", je procéderai alors de la façon suivante :

 

- je mettrais le classeur Excel en lecture seul dans les propriétés du fichier
- par l'intermédiaire d'une macro, si je veux éditer le fichier, je changerais les propriétés du fichier. Ainsi, je serai le seul a avoir cette macro et ne serait pas tributaire des autres utilisateurs qui ont les macros activées ou non. De plus, il est impossible de remplacer ce fichier par un autre avec cet attribut "lecture seul".

 

OK, un utilisateur peut toujours aller dans les propriétés du fichier pour changer cet attribut. Tout comme il peut aussi facilement désactiver l'affichage des macros.

 

La troisième solution serait de créer une base Access qui est un peu mieux sécurisée et qui sait gérer les accès à la base.


Message édité par otobox le 02-04-2010 à 18:55:06

---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
n°1981521
03celine03
Posté le 07-04-2010 à 10:57:23  profilanswer
 

Merci à tous pour vos réponses !

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  document excel MdP ou lecture seule avec interdiction d'enregistrer

 

Sujets relatifs
Exporter un tableau Excel 2007 vers Access[EXCEL] utiliser SI avec ET et OU
Transfert de données d'une feuille excel vers un tableau VBA[VBA - Macro Excel] Masquer colonne sous condition
Cocoon et nombre de styles excelPHP, Excel et ODBC
php/mysql résultat requête dans une seule variable[VBA] macro excel pour envoyer plusieurs fichiers
VBA: combiner 2 tableaux excel pour avoir un troisième tableau completrecuperer données d'un fichier excel
Plus de sujets relatifs à : document excel MdP ou lecture seule avec interdiction d'enregistrer


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR