Actualisation de formules par vba

Fermé
Arkana0 Messages postés 4399 Date d'inscription mercredi 11 février 2009 Statut Modérateur Dernière intervention 10 février 2023 - 11 janv. 2016 à 16:41
Arkana0 Messages postés 4399 Date d'inscription mercredi 11 février 2009 Statut Modérateur Dernière intervention 10 février 2023 - 13 janv. 2016 à 15:00
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 ;)

1 réponse

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 700
11 janv. 2016 à 22:29
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 4399 Date d'inscription mercredi 11 février 2009 Statut Modérateur Dernière intervention 10 février 2023 181
12 janv. 2016 à 15:15
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 lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 700
12 janv. 2016 à 21:32
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 4399 Date d'inscription mercredi 11 février 2009 Statut Modérateur Dernière intervention 10 février 2023 181
13 janv. 2016 à 15:00
Si tu disposes d'un code tout fait, ça m'éviterait quelques recherches google '^^
0