Appeler une fonction lors d'une cellule Excel changements sur la Formule de Recalcul
Autant que je sache, Worksheet_Calculate
est appelée lorsque la valeur d'une cellule dans une feuille de calcul changements sur la Formule de révision.
Est-il un moyen pour que j'ai besoin d'une fonction qui doit être appelée uniquement lorsqu'une cellule spécifique changements sur la Formule de Recalcul
Je pense que vous auriez besoin de suivre la valeur actuelle et ensuite au sein de chaque Worksheet_Calculate événement, vous seriez de vérifier si elle avait changé...
Comment fonctionne la cellule spécifique de changement de valeur? Est-ce une formule, lié à un classeur externe, requête sur le web, etc?
D'accord avec Tim ici. Voir cet exemple. stackoverflow.com/questions/11754047/... Dans cet exemple, le matin à l'aide d'une valeur codée en dur. vous pouvez vous procurer cette valeur dans le
Est-il une raison pour laquelle vous ne pouvez pas utiliser un définis par l'utilisateur fonction de feuille de calcul (UDF)?
J'ai fini par utiliser un fichier UDF. Mais alors nécessaire de travailler à l'intérieur de la Contrainte qu'une UDF cant modifier la valeur de toutes les autres Cellules
Comment fonctionne la cellule spécifique de changement de valeur? Est-ce une formule, lié à un classeur externe, requête sur le web, etc?
D'accord avec Tim ici. Voir cet exemple. stackoverflow.com/questions/11754047/... Dans cet exemple, le matin à l'aide d'une valeur codée en dur. vous pouvez vous procurer cette valeur dans le
Workbook_Open()
de l'événement et de le stocker dans une variable publique et puis à partir de là constamment suivreEst-il une raison pour laquelle vous ne pouvez pas utiliser un définis par l'utilisateur fonction de feuille de calcul (UDF)?
J'ai fini par utiliser un fichier UDF. Mais alors nécessaire de travailler à l'intérieur de la Contrainte qu'une UDF cant modifier la valeur de toutes les autres Cellules
OriginalL'auteur Shorn Jacob | 2012-09-27
Vous devez vous connecter pour publier un commentaire.
Permettez-moi de voir si j'interprète votre question correctement. Vous voulez savoir si il est possible de ne que le coup d'envoi d'une macro si une cellule particulière (ou un groupe de cellules) est modifié.
La réponse est Oui. Tweak Ed du code un peu.
Je pense que votre utilisation de "fonction" est en train de jeter les gens hors tension. C'est pourquoi Ed réponse est si complexe.
Ok. Il est possible que vous précisiez votre question correctement et vous voulez juste pour un gain d'efficacité. Dans ce cas, Ed réponse résout votre problème immédiat, mais fera en sorte que la feuille de calcul de ne PAS calculer automatiquement lorsque vous modifiez d'autres cellules.
[frôle -1]...marquée comme étant correcte, mais cette erreur pour moi -
Intersect
sans hésiter nécessite un paramètre supplémentaireC'est censé être une virgule et non =.
Je n'ai pu avoir ce travail en changeant
target.address
àRange(target.address)
OriginalL'auteur Robert Co
De faire quelque chose quand une cellule spécifique est changé, vous avez besoin d'intégrer la sélection pertinents événement de changement dans le fichier
Worksheet_Change(byval target as Range)
. Nous pouvons re-calculer une feuille de calcul lors de votre cellule est modifié comme suit:Maintenant ce que vous voulez faire est de désactiver le calcul que le reste du temps. Si vous souhaitez passer des calculs sur la feuille (et non pas l'ensemble de votre fichier), vous devez activer les calculs lorsqu'il est activé, et quand elle est désactivée par exemple
Bien sûr, vos exigences en matière de re-calculer peut être beaucoup plus complexe que l'exemple ci-dessus. Tout d'abord, vous pouvez ouvrir le fichier alors que sur la feuille en question dans ce cas, vous devez utiliser l'événement "Workbook_Open" pour détecter votre feuille, et l'ensemble des calculs en conséquence
Ensuite, vous pouvez avoir plusieurs cellules qui peuvent nécessiter une certaine forme de calcul. Sans doute la raison pour laquelle vous souhaitez désactiver les calculs, c'est que le fichier est en cours d'exécution trop lentement. Si oui, et que vous êtes d'identifier toutes les cellules d'entrée, vous pouvez entrer les sorties à l'aide de code. Une méthode serait de saisir les formules à l'aide de ce guide pour entrer des formules dans Excel Visual Basic. Vous pouvez alors remplacer la formule par la valeur calculée par exemple
Range("YourCell") = Range("YourCell").Value
...alors arrêter le nombre de formules dans la feuille cesse de croîtreOriginalL'auteur Ed Bolton