donc c'est une question générale, je suis sûr que cela a déjà été demandé, mais je ne trouve pas beaucoup d'aide.Comment limiter Worksheet_Calculate() à seulement exécuter lorsque la plage spécifiée est calculée
Dans Excel ayant une plage dans une feuille de calcul dire B6: F12, qui sont tous les résultats des calculs que je suis un problème avec le sous-programme Worksheet_Calculate()
mon problème est que, avec ce code très généralisé pour la Worksheet_Calculate sous-routine
Private Sub Worksheet_Calculate()
Dim aCell as Range
Dim aRange as Range
Set aRange = Range(B6:B12)
For Each aCell in aRange
SomeFunction(aCell)
Next
End Sub
tout calcul qui se produit dans la gamme C6: F12 provoque l'itération par aRange se passer et appels non nécessaires à SomeFunction (ACELL).
Comment puis-je faire en sorte que ce scénario se produise uniquement lorsqu'un calcul est effectué sur la plage B6: B12?
vous pouvez avoir être un peu plus spécifique. Peut-être montrer des échantillons de vos données. Quand un calcul est-il effectué? Dans votre code vous avez 'B6: B12' mais dans votre question vous avez' C6: F12' et 'B6: F12'. – ShanayL
Essayez-vous d'exécuter la fonction uniquement s'il y a une valeur dans Range'B6: B12'? Si c'est ce que vous essayez, utilisez 'If aCell <>" "Then' ou [sur le changement de cellule ou de plage] (https://stackoverflow.com/questions/409434/automatically-execute-an-excel-macro-on -a-cell-change) – danieltakeshi
des calculs séparés sont effectués dans toutes les cellules B6: F12, ce qui fait 35 calculs différents. Lorsque les calculs de B6: B12 arrivent, je veux que SomeFunction() soit appelée. Comme il se trouve à chaque fois que n'importe quel calcul sur la feuille de calcul est appelé, le SomeFunction() est appelé via l'itération. – Chris