Affichage personnalisé de propriété de document de la valeur dans la cellule de feuille de calcul Excel 2007
J'ai créé un programme qui crée et remplit un document personnalisé à la propriété dans un classeur Excel 2007 fichier. Je n'ai cependant pas été en mesure de démontrer la valeur de cette propriété dans une cellule de feuille de calcul. Dans Word 2007, vous pouvez simplement sélectionner "Insertion -> Rapide de Pièces de rechange -> Champ..." et utilisez le champ DocProperty pour afficher la valeur du champ personnalisé dans un document. Cependant, je n'ai pas trouvé une fonction similaire dans Excel 2007.
Quelqu'un sait comment afficher la valeur d'une propriété de document personnalisé dans une cellule de feuille de calcul Excel? Je préfère une solution similaire à Word 2007 solution mentionnée ci-dessus. Je préfère ne pas utiliser une macro/code personnalisé pour cette.
OriginalL'auteur LeonZandman | 2009-07-14
Vous devez vous connecter pour publier un commentaire.
Malheureusement, je crois que vous avez besoin d'utiliser une fonction définie par l'utilisateur. Ajouter un nouveau module VBA à votre classeur et d'ajouter cette fonction:
L'appel à
Application.Volatile
forces de la cellule sera mise à jour à chaque nouveau calcul s'assurer qu'il sera ramasser des changements dans les propriétés du document.Veuillez également noter que l'Application.Volatile n'entraîne pas la formule pour être recalculés sur une modification des Propriétés d'un Document, que sur d'autres changements dans les cellules.
Grâce goodgai! Que quelque chose à prendre en compte.
OriginalL'auteur Martin Liversage
L'équivalent dans Excel serait via la formule et je ne pense pas que c'est possible d'en extraire une propriété de document sans code. Il n'existe pas de fonctions natives de choisir les propriétés du document. (Une autre solution pourrait consister à stocker des informations dans le classeur/Noms de feuille de calcul qui SONT accessibles via la formule)
En VBA, vous devez créer une fonction quelque chose comme:
et ensuite l'appeler dans une formule avec
=CustomProperties("PropertyName")
.Il y a un autre point subtil. Formule dépendances sont uniquement liés à d'autres cellules; cette formule repose sur une propriété personnalisée. Si vous mettez à jour la propriété personnalisée d'un pré-existant formule impliquant
CustomProperty
ne sera pas mis à jour automatiquement. La cellule devra être ré-évalué manuellement ou à l'ensemble du classeur forcé à travers un recalcul. Votre meilleure chance serait de rendre la fonction volatile, ce qui signifie que la formule serait alors recalculer avais sur chaque cellule de changement -- mais cela signifie que vous obtenez seulement une mise à jour si une cellule a été modifiée.OriginalL'auteur Joel Goodwin
Sélectionnez la cellule que vous souhaitez extraire
Renommer la cellule à quelque chose d'utile. De "B1" à "Project_Number".
Ouvrir Avance "Propriétés", cliquez sur l'onglet "Personnalisé". Entrez un nom pour la nouvelle propriété. cliquez sur "Lien vers le contenu" puis sélectionnez le nom de la cellule à partir de la "Valeur" de la liste déroulante.
Je souhaite que je pourrais prendre leur actif, mais j'ai trouvé la réponse en ligne:
http://pdmadmin.com/2012/03/displaying-custom-property-values-in-excel-using-a-named-range/
OriginalL'auteur Arlon
Vous pouvez lier une plage nommée à une propriété personnalisée, mais alors la propriété personnalisée qui reflète la valeur de la [première cellule dans la plage. C'est effectivement en lecture seule; vous pouvez modifier le contenu de la cellule à la mise à jour de la propriété, mais pas l'inverse.
Je sais que vous voulez l'éviter, mais si vous souhaitez utiliser la valeur de la propriété dans une formule, vous aurez à créer une fonction de feuille de calcul de le faire.
OriginalL'auteur Gary McGill
J'ai connu les mêmes problèmes que d'autres personnes ont. Donc je vais essayer de couvrir de manière exhaustive comment je me suis adressée à elle.
Tout d'abord, vous n'avez pas d'autre option que d'écrire une fonction destinée à obtenir ce que vous mettez dans une coutume ou intégré dans le bien et faire le "problème" de la cellule à point à lui de cette façon:
PropertyName étant une chaîne faisant référence au nom de la coutume/construit en les biens dont la valeur que vous souhaitez afficher dans la cellule.
La fonction peut être écrite (comme autrefois suggéré):
pour un construit-dans la propriété, ou comme:
Comme déjà mentionné, y compris l'Application.Volatils pour permettre un semi-automatique le contenu de la cellule de mise à jour.
Cependant, cela pose un problème: à chaque fois que vous ouvrez votre fichier Excel, toutes les cellules à l'aide d'une telle relation sera mis à jour et, au moment où vous quittez le fichier, Excel va vous demander votre permission de le mettre à jour, peu importe si vous n'introduit aucun changement sur le ou pas, parce que Excel lui-même l'a fait.
Dans mon groupe de développement, nous utilisons la SubVersion comme un système de contrôle de version. Dans le cas où vous frappé par inadvertance "mise à jour" à la sortie, SVN remarquent et la prochaine fois que vous voulez valider vos modifications, le fichier excel sera inclus dans le pack.
J'ai donc décidé d'utiliser tout ce qui est à portée de main pour faire tout ce dont j'avais besoin et d'éviter, dans le même temps, cette mise à jour automatique effet je ne voulais pas.
Ce qui implique d'utiliser des plages nommées en combinaison avec la propriété accéder à la fonction/s.
Compte tenu du fait que je ne peux pas attendre de vieux dossiers pour avoir des dispositions pour mes besoins, j'ai écrit cette fonction:
Il permet une bonne sélection de la cellule de destination. Lors de l'affectation de valeurs à une propriété (disons-le, "Auteur", qui se trouve être intégré dans un), j'ai également mettre à jour la valeur stockée dans la plage nommée, et peut écrire dans une cellule:
si j'arrive à avoir défini une gamme nommée "Auteur" et rempli ses "A1" de la cellule avec la valeur de la propriété "Auteur", que j'ai besoin d'avoir mis à jour par nos propres externes à des fins de suivi.
Tout cela n'est pas arrivé du jour au lendemain. J'espère que cela peut être de l'aide.
OriginalL'auteur Antonio Rodulfo
J'ai utilisé ce pour l'extraction de l'SharePoint propriétés (basé sur Martin réponse):
OriginalL'auteur Ricardo Diaz