Protéger La Feuille De Calcul Excel Pour Lire Seulement, Mais De Permettre L'Actualisation Des Données Externes
J'ai un classeur Excel 2010. Une feuille de calcul importation de données à partir d'une connexion de données externes (requête SQL). J'ai également ajouté des colonnes de la feuille de calcul pour effectuer des calculs sur les données et la masser un peu. La feuille de calcul constitue l'épine dorsale des données brutes utilisées dans les autres feuilles de calcul.
J'aimerais protéger la feuille de calcul à faire en lecture seule (permettant de tri, de filtre, de tableau croisé dynamique à l'utilisation). Je sais comment faire avec les protéger de la feuille de calcul de la fonctionnalité. Mais lorsque la feuille de calcul est protégée, je ne peux pas utiliser le bouton Actualiser pour actualiser les données de la source et je veux que les utilisateurs soient en mesure de le faire. J'allais pour configurer les propriétés de la connexion pour actualiser automatiquement lors de l'ouverture et de permettre manuel rafraîchit.
Quelqu'un a trouvé un moyen élégant de l'activation de la protéger de la feuille de calcul de la fonctionnalité et de l'activation externe de l'actualisation des données, sans permettre aux utilisateurs de modifier les valeurs des cellules elles-mêmes?
OriginalL'auteur Dominic | 2013-12-03
Vous devez vous connecter pour publier un commentaire.
Un moyen facile de le faire est d'ajouter un bouton personnalisé et écrire une macro. Quand l'utilisateur appuie sur la barre d'outils bouton personnalisé, la macro derrière il va ôter la protection de la feuille et d'en actualiser les données externes, puis protéger la feuille (avec screenupdate définie comme faux évidemment)
OriginalL'auteur Pankaj Jaju
Basé sur Pankaj de la suggestion, je n'ai la suite (bien que je ne pense pas que c'est très élégant et toujours pense qu'il doit y avoir une meilleure façon).
J'ai créé une macro pour le classeur.
Puis j'ai ouvert ThisWorkbook dans le Projet VBA et à l'édition de l'ouverture du Classeur de routine.
Plus d'informations sur les options de protection peuvent être trouvés ici: http://datapigtechnologies.com/blog/index.php/worksheet-protection-best-practice/
Cela fonctionne; la feuille est verrouillé chaque fois que le classeur est ouvert et une actualisation des données est effectuée. Le UserInterfaceOnly de propriété ne fait pas de différence pour la commande pour actualiser les données (bien qu'il doit à d'autres macro-événements). Vous aurez toujours spécifiquement pour déverrouiller la feuille de calcul, effectuez l'actualisation des données et puis la verrouiller à nouveau la fiche.
J'ai ajouté un bouton de formulaire sur une des autres feuilles et lié à mon RefreshData macro de sorte que les données peuvent être actualisées manuellement, alors que la feuille est censé être verrouillé.
L'autre chose que j'ai fait dans les Propriétés de la Connexion, a été de retirer la tique à l'encontre de l'actualisation en arrière-plan.
OriginalL'auteur Dominic
Je suggère d'ajouter la requête externe sur une autre feuille, ne sont pas protégés, mais que vous cacher.
Les données sur la feuille protégée serait tout simplement se référer à la non protégé de la feuille.
OriginalL'auteur Olivier
J'ai ajouté de la connexion de données pour certains non protégés feuilles, puis se cacha les feuilles.
Malheureusement, les connexions ne fonctionnent pas, même si la structure du classeur est protégé.
Je ne peux pas croire que j'ai peut-être besoin de libérer mon code non protégées, il doit y avoir une force industrielle solution à ce
OriginalL'auteur Chris