Actualisation de formules par vba

Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   -  
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je travaille avec un énorme tableau sur Excel 2007
Celui-ci se compose de deux feuilles, que je nommerai A et B.
La feuille A est remplie de formules piochant dans la feuille B sur pas loin de 1000 lignes et une bonne douzaine de colonnes.
Naturellement, avec l'actualisation automatique, appliquer un filtre prend un temps assez considérable (on doit approcher des 5s). Je l'ai donc réglé pour une actualisation manuelle.

Toutefois, pour éviter les étourderies, je me demandais s'il était possible de coder quelque-chose en vba pour que les formules s'actualisent automatiquement quand j'ai fait une modification sur la feuille B et que je retourne à la feuille A.

Je vous remercie d'avance pour vos conseils, et non je n'ai pas la possibilité d'alléger le tableau plus qu'en son état actuel ;)
A voir également:

1 réponse

gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 725
 
Bonjour,

Je suppose que ce tu appelles "actualisation automatique" c'est le mode calcul automatique.
Si c'est le cas il te suffit de rester en manuel et déclencher le calcul à l'activation de la feuille A
Private Sub Worksheet_Activate()
    Calculate
End Sub
0
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
Bonjour,

Oui c'est bien de ça qu'il s'agit : les formules qui s'actualisent automatiquement ou sur appui sur F9.
Je viens toutefois de voir que le passage en calcul manuel n'était pas une si bonne option : cela s'applique à tous les fichiers Excel... J'aimerais en fait que ce calcul "manuel" ne se fasse que sur cette feuille A.

Ensuite pour réagir à ton code : il ne fait qu'une partie de ce que je demande. Je ne souhaite pas que les calculs s'actualisent à chaque fois que je vais sur ma feuille A (ça serait un premier progrès ceci-dit). Je veux qu'ils s'actualisent si je vais sur ma feuille A seulement si j'ai modifié une valeur sur ma feuille B auparavant.
Peut-être faudrait-il instaurer un système de drapeau avec une variable globale ?
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 725
 
Bonsoir,

Dans ce cas, dans Thisworkbook, à l'Open, tu récupères le mode de calcul pour le restituer à la fermeture et tu le mets en manuel.

Dans Change de ta feuille B tu positionnes ton flag en variable globale

En activant la feuille A, tu calcules si le flag est positionné.
0
Arkana0 Messages postés 6365 Date d'inscription   Statut Modérateur Dernière intervention   182
 
Si tu disposes d'un code tout fait, ça m'éviterait quelques recherches google '^^
0