Liaisons et fichiers verrouillés
Bonjour,
Voilà, J'ai une série de classeurs qui sont propres aux utilisateurs et étant sur le serveur commun (pas possible de faire autrement) sont verrouillés par des codes (mis en passant par "enregistrer sous", "outils", "options générales" et "mot de passe pour la lecture"). Je ne suis pas autorisé à faire de ces classeurs des fichiers librement consultables.
Pour les besoins du service, ces classeurs contiennent des liaisons vers un autre classeur qui copie certaines des données entrées par les utilisateurs. Seulement, depuis que les codes ont été rentrés, il faut que l'utilisateur vienne taper son code au moment où le classeur principal fait sa mise à jour pour que cette dernière soit possible. Résultat de l'opération, impossible de travailler sur le classeur quand l'utilisateur est absent des locaux.
Existe-t-il un moyen de sauvegarder les mots de passe au sein du classeur principal, une sorte de "se souvenir de moi" losqu'on entre les codes la première fois, afin que les mises à jour se fassent sans être obligé de rentrer les codes ?
A défaut, existe-t-il un moyen d'agir sur les permissions au niveau des liaisons pour qu'elle se fasse malgré la présence d'un verrouillage ?
Merci par avance de votre aide.
Hishiro
Bonjour,
je pense que la solution à ton problème est d'avoir les mdp en dur dans la macro de mise à jour du classeur principale et suivant le classeur qu'il doit ouvrir pour faire sa mise à jour, il le dévérouille automatiquement lors de l'ouverture, récupère les données, puis revérrouille le classeur concerné.
Après afin d'éviter que des gens aillent récupérer les mdp des autres, il faudra penser à vérouiller ton classeur principal (mdp sur classeur ET sur le code vba histoire d'être un peu plus sûr).
Sinon en dehors de cela, je ne vois pas trop comment procéder, peut-être que quelqu'un aura une autre solution plus adaptée.
S'il n'y a aucune autre solution, j'utiliserais ce système. Le problème c'est que le classeur principal est utilisé par le chef de service et j'ai un peu peur que les utilisateurs, si je leur demande les mdp pour une macro, ne pensent qu'on va pouvoir accéder aux données comme on veut.
Impossible d'agir sur les liaisons, par exemple (je n'y connais pas grand chose aux liaisons) sous forme d'autorisation à faire dans chaque classeur personnel ?
Bonjour
Une idée (même pas sur que cela soit possible)
Lors de la mise à jour, il y a t-il une possibilité de tester si le fichier est protégé ?
style
for Each Fichier In ListeFichier
On Error Resume Next
' Code pour écrire dans le fichier
If Err.Number > 0 then
MsgBox "Fichier protégé"
Else
On Error Goto 0
' Mise à jour
End If
Next FichierEst-ce que cela ne revient pas à toujours renvoyer le message "fichier protégé" puisque les classeurs sont verrouillés par des codes ?
Je comprends (quoi que ^^) leur crainte, mais, je dirais que si ce sont des fichiers professionnels, c'est normal que les services qui ne sont pas concernés n'y aient pas accès (tu vas pas donner les accès aux comptes de l'entreprise à l'ouvrier lambda, c'est normal), cependant je ne trouve pas cela choquant que le chef de leur service les aient lui.
Enfin je vais prendre l'exemple de la société ou je travaille, mais chez nous, il n'y a que 2 solutions :
- soit tu as besoins des infos du fichier X et tu y as acces (en lecture seule ou écriture suivant les besoins, voir en écriture que sur certaines plages du fichier)
- soit ton service n'en a pas besoin, et l'on a même pas accès au répertoire du tout.
Mais je ne vois pas l'intérêt de mettre 50 protections au sein d'un même service, et encore moins vis à vis du responsable, ou alors ils ont peur qu'il voit qu'ils ne font pas grand chose lol. Pour moi, il est normal que ton responsable ait accès au boulot que tu fais, ne serait-ce que pour vérifier si ce qui est fait est correcte (c'est une partie de son travail à lui après tout).
Sinon je ne pense pas que cela soit possible de chinter directement le mdp dans les liaisons, cela serait trop simple et encore plus libre d'accès.
Salut banzai,
Tu test si il existe une protection, et si non tu fais la maj, mais en cas de fichier proteger (et ils le sont tous apparement), il ne se passera rien, et son fichier principal ne sera pas mis à jour donc je ne pense pas que cela soit ce qu'il recherche.
je suis parfaitement d'accord, seulement je ne fais malheureusement pas les contraintes qui me sont imposées dans la création de ces classeurs. Les classeurs gèrent des données personnelles aux utilisateurs (regroupées en un classeur par souci de simplicité) et le chef de service est autorisé à voir certaines de ces données mais pas toutes, d'où le code et les liaisons. Donc ou je trouve un moyen de passer outre les codes d'accès pour mettre à jour ou je scinde les classeurs en plusieurs classeurs (et là je sens que je vais galérer un moment avant que tout le monde comprenne quel classeur utiliser pour quoi faire et comment !)
Eh bien je crois que tu as la réponse à ta question :
un mdp est fait pour proteger le fichier, pas de mdp = pas d'accès, c'est le but, sinon il n'y aurait aucun intérêt à mettre un mdp si on pouvait avoir un accès par un moyen ou un autre.
Donc soit tu as les mdp pour dévérrouiller / vérrouiller les classeurs à chaque maj, mdp qui ne seront visibles de personnes et à la limite tu travaille sur classeur fermé ou avec un petit "application.screenupdating = false" sur classeur ouvert, pour que le responsable ne voit pas le défilment des fenêtres, et donc ne voit pas les données persos.
Soit ils ont un classeur pour données perso et un pour les données qui font parties des liaisons.
La dernière solution, mais beaucoup plus contraignante à mettre en place, tu masques les onglets avec les données persos, et c'est à l'ouverture du fichier utilisateurs, une invit de saisie qui demande le mdp
=> si c'est celui du responsable => il ne voit que les onglets avec les liaisons
=> si c'est celui de l'utilisateur => affichage des onglets masqués
Et à la fermeture du fichier, tu remasques automatiquement les onglets avec données persos.
A mon sens la meilleur solution est d'avoir les mdp, et de travailler avec une macro avec le "application.screenupdating = false" (ne pas oublier de remettre à = true en fin de macro).
Bon, je crois que je vais scinder les données en classeur différents et supporter les questions sur le fonctionnement des classeurs pour les 6 mois à venir !!!