Classeur partagé et usage privatif

Kotov

XLDnaute Impliqué
Bonsoir le Forum,

Toujours en plein dans le partage de classeur, voici un nouveau cas qui me turlupine depuis hier, et que je soumet à la sagacité des Experts-es-partage.

Hypothèse de départ :
--------------------
Soit un classeur partagé sur un serveur
5 utilisateurs potentiels : Grouillots 1, 2, 3, 4 et Chefaillon
2 utilisations différentes :
...les Grouillots font uniquement de la saisie (via un Userform) dans une base unique sans avoir l'autorisation d'apporter la moindre modification ultérieure
...Chefaillon peut consulter la base (via un Userform privatif protégé) et l'annoter. (Eh, c'est ça d'être chef !)

Je pars du principe qu'à l'ouverture du classeur la base est protégée, que lors de la validation des Grouillots, la base ne l'est plus le temps du transfert de données et qu'elle est de nouveau protégée dès la fermeture du userform de saisie.

Question:
----------
En gardant à l'esprit qu'il s'agit d'un classeur partagé, imaginons le cas suivant :
Grouillot1 et Grouillot2 ouvrent le classeur. La base est protégée. Au moment de leur saisie, elle ne l'est plus. Que se passe t-il si Grouillot3 ouvre à ce moment le classeur ? la base est-elle protégée ou Grouillot3 peut il apporter des modifications ?

Même cas de figure avec Grouillot4 qui ouvre le classeur alors que Cheffaillon est en train d'apporter des modications avec son userform privatif. (outre le plaisir rare de surprendre Cheffaillon en plein boulot, Grouillot 4 peut t'il en profiter pour modifier les données de la base ?)


J'ai cherché sur le forum sans trouver de réponse.
Par ailleurs, qu'elle serait la meilleure méthode de protection (protect, xlSheetVeryHidden, colonnes masquées .. ??). J'ai essayé les 3, les bascules de protection me paraissent contraignantes.

Bonne nuit à tous.
Kotov
 

Jam

XLDnaute Accro
Re : Classeur partagé et usage privatif

Salut Kotov,

Beurk beurk beurk le classeur partagaé...dans ton cas, j'utiliserai un binome Excel + Base de donnée (Access, MySQL, SQL Server...).
Comme cela pas de problème de gestion de sécurité. En fait il suffit de donner des droits différents entre Grouillot et Chefaillon dans la BDD et de gérer le tout via une petite procédure de login.
Ensuite, tu peux locker la BDD si elle est en modification, ou laisser faire (le dernier qui met à jour à gagné :)) Bref, tu fais un peut comme tu veux.

Au final cela dépend entièrement de la complexité des données qui sont gérées dans le fichier XL.

Bon courage,
 

Samantha

XLDnaute Accro
Re : Classeur partagé et usage privatif

Bonjour,

Il faudrait faire des tests pour savoir quelles sont les MAJ prises en compte lors d'une action simultanée de 2 Grouillots sur le fichier (?)

Le plus simple mais pas le plus pratique question gain de temps c'est action du fichier uniquement d'un seul acteur en lecture/écriture si ouverture du fichier alors qu'un Grouillot ou que Cheffaillon est en action sur le fichier : ouverture en lecture seule.

A ce moment là Excel dit automatiquement : le fichier est déjà utilisé par Tartempion et dans la boite de dialogue il y a 3 boutons

Abandonner
Lecture seule
Notification (ou un truc du genre je suis pas sure de la terminologie)

Ainsi pas de problème de qui pert gagne mais un délai dans l'entrée des infos... faut voir ce qui est à privilégier dans ce cas précis.

Tu nous dis ?


Sam
 

Kotov

XLDnaute Impliqué
Re : Classeur partagé et usage privatif

Bonsoir Samantha, Jam et le Forum,

Eh oui Jam, si j'avais pu, j'aurais tout fait avec Access.
Le pire, c'est qu'Access est intallé sous tous les postes, mais l'usage n'est pas autorisé pour une histoire de licence non renouvellée (j'étais le seul à l'utiliser d'ailleurs). J'ai pas le droit de toucher à la "Ferrari" et me contente de la berline classique.
D'autre part, j'essaie plutôt de faire des "trucs simples" qui ne demanderont aucun SAV (je ne suis pas informaticien).

Réponse à Samantha :
Tu as raison, le plus simple c'est la saisie utilisateur par utilisateur avec fichier en "lecture seule" pour les autres.
Mais si au départ, 5 utilisateurs vont saisir vont effectuer chacun une vingtaine de saisies dans leur journée, je pressens une montée en charge rapide avec 15 utilisateurs potentiels et une saisie quantativement bien plus importante.
Il s'agit maintenant d'un choix managérial : on privilégie la sécurité, les flux saisis, une nouvelle organisation ?

Pour la saisie quasi simultanée, il y a "modification conflictuelle" et inscription dans un historique des modifications. J'ai contourné le problème avec enregistrement à chaque saisie :
cf mon précédent fil
https://www.excel-downloads.com/threads/modifications-conflictuelles-dans-classeur-partage.69868/


Bonne soirée à tous
Kotov
 

Kotov

XLDnaute Impliqué
Re : Classeur partagé et usage privatif

Bonsoir à tous,

Si mon problème de sécurisation d'une partie des données sur un classeur partagé n'est pas résolu dans les "règles de l'art", j'ai trouvé un moyen d'éviter des accès indésirables de la manière suivante.

2 raisons pour vous la présenter :
- il y a probablement une faille à laquelle je n'ai pas pensé.
- Comme il emm....dera plus d'un curieux qui voudra mettre son nez dans la partie protégée, il peut être utile à quelqu'un.


Le principe : décourager les moins obstinés et les moins compétents dans Excel

Données de départ :
J'ai donc un classeur partagé axé autour d'une base de données.
Les utilisateurs ("Grouillots dans mon exemple) saisissent via un userform.
Les données sont utilisées pour des stats (définir des risques potentiels dans mon cas)
Seul un responsable ("Chefaillon") dispose de l'accès aux données sensibles.

A l'ouverture du classeur, il est entièrement protégé
- les feuilles sensibles sont cachées (xlVeryHidden) et protégées par un mot de passe (Protect)
- pour chaque feuille sensible, seule la cellule A1 est autorisée (activeSheet.ScrollArea = "A1")
- les onglets ne sont pas visibles, de même que la barre de formule, les barres de défilement H et V et accessoirement les entêtes de lignes et le quadrillage.
- quelques données nécessitant une certaine discrétion sont affichées dans des cellules lointaines [cells(3,256) par ex.] avec une couleur de police similaire à celle de la cellule.
- Le mode de calcul automatique est désactivé .[Calculation = xlCalculationManual] de même que la mise à jour de l'écran [.ScreenUpdating = False]

A l'ouverture, Grouillot n'a accès qu'à la feuille "Accueil". Feuille protégée avec un bouton permettant d'accéder à un UserForm multipage.
- pour sa saisie, il n'a accès qu'à la 1re page du UserForm. En validant sa saisie, la macro ôte la protection ( Visible + unprotect), libère les cellules (ScrollArea =""), et remet tout en place dès la fin du transfert des données avec retour à la page d'accueil.
- la sélection des autres pages déclenche l'apparition d'un UserForm demandant la saisie d'un mot de passe pour accéder aux feuilles sensibles. Il est boulé après 4 tentatives infructueuses avec fermeture du classeur.

Si Grouillot cherche à accéder au classeur en réactivant les onglets, l'arrivée sur l'une des pages sensibles vérifie et comble les lacunes de protection. il est aussitôt redirigé vers la page d'accueil. Et s'il arrive malgré tout a accéder à la feuille, chaque sélection de cellule le fait retourner à la cellule A1 tandis que la couleur de la police prend automatiquement la couleur de la cellule.

Quand à Chefaillon, il n'a accès au données sensibles qu'après saisie du mot de passe. Les feuilles sensibles sont libérées et la mise a jour se fait par un bouton lié à la procédure Calculate. Tout est reprotégé dès qu'il quitte la zone sensible.

Et évidemment le code source est protégé par un mot de passe 18 caractères (chiffre, min, maj et caratères spéciaux). ca doit amuser un "casseur de code" pendant un moment !
---------
Cette méthode artisanale et bancale, bien qu'alourdissant le code, doit à mon sens décourager 99% des curieux.
Evidement je sais qu'un cador d'Excel doit contourner çà sans problème (notamment l'accès au code source via un tableur concurrent d'Excel), mais disons que c'est la prime à la compétence.

Question : est-ce qu'en créant un autre classeur on peut récupérer les données sur les pages cachées (xlVeryHidden) via un code en VBA ?

Bonne soirée
Kotov
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260