OVH Cloud OVH Cloud

Recalcul automatique

3 réponses
Avatar
Le homard de Vinci
Bonjour à tous.
Mon "problème" : Soit un classeur comportant 10 feuilles de calcul. Je
souhaiterai bloquer la fonction de calcul automatique sur une feuille (la 8
ème par exemple) et seulement celle là, et ne déclencher mon calcul sur
cette 8 ème feuille que sur ordre (bouton par exemple)

Merci de votre aide précieuse (comme d'habitude)

3 réponses

Avatar
JLuc
*Bonjour Le homard de Vinci*,
Tu peux decocher l'option de calcul automatique et sur le code de la
feuille 8 :
Private Sub Worksheet_Activate()
Me.Calculate
End Sub

Bonjour à tous.
Mon "problème" : Soit un classeur comportant 10 feuilles de calcul. Je
souhaiterai bloquer la fonction de calcul automatique sur une feuille (la 8
ème par exemple) et seulement celle là, et ne déclencher mon calcul sur cette
8 ème feuille que sur ordre (bouton par exemple)

Merci de votre aide précieuse (comme d'habitude)


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
Rai
Bonjour à tous.
Mon "problème" : Soit un classeur comportant 10 feuilles de calcul. Je
souhaiterai bloquer la fonction de calcul automatique sur une feuille (la 8
ème par exemple) et seulement celle là, et ne déclencher mon calcul sur
cette 8 ème feuille que sur ordre (bouton par exemple)

Merci de votre aide précieuse (comme d'habitude)




Bonjour,


Une solution pourait consister à détecter le changement de feuille :
- si c'est la 8 on passe en calcul manuel
- si c'est une autre on passe en calcul automatique
Il faut envisager une conséquence :
si on passe en calcul automatique, la feuille 8 sera automatiquement
re-calculée dès qu'un changement est détecté sur une des autres feuilles.
Donc, on peut bloquer la fonction de calcul de la feuille 8 dès qu'on
sélectionne une autre feuille, et la rétablir si on la sélectionne.
Ainsi l'appui sur la touche F9 lancera le recalcul de la feuile 8.

En concret cela peut donner quelquechose du genre :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Index = 8 Then
Application.Calculation = xlCalculationManual
Sh.EnableCalculation = True
Else
Sheets(8).EnableCalculation = False
Application.Calculation = xlCalculationAutomatic
End If
End Sub

Code à insérer dans 'ThisWorkbook'.
(F9 lance le calcul de la feuille 8)

Cela te convient-il ?

Cordialement

Rai

Avatar
Le homard de Vinci
J'essaye et te tiens au courant sur forum


Merci



"Rai" <raimondpointschmidtatberlinpointde> a écrit dans le message de news:
446d559e$0$21264$
Bonjour à tous.
Mon "problème" : Soit un classeur comportant 10 feuilles de calcul. Je
souhaiterai bloquer la fonction de calcul automatique sur une feuille (la
8 ème par exemple) et seulement celle là, et ne déclencher mon calcul sur
cette 8 ème feuille que sur ordre (bouton par exemple)

Merci de votre aide précieuse (comme d'habitude)




Bonjour,


Une solution pourait consister à détecter le changement de feuille :
- si c'est la 8 on passe en calcul manuel
- si c'est une autre on passe en calcul automatique
Il faut envisager une conséquence :
si on passe en calcul automatique, la feuille 8 sera automatiquement
re-calculée dès qu'un changement est détecté sur une des autres feuilles.
Donc, on peut bloquer la fonction de calcul de la feuille 8 dès qu'on
sélectionne une autre feuille, et la rétablir si on la sélectionne. Ainsi
l'appui sur la touche F9 lancera le recalcul de la feuile 8.

En concret cela peut donner quelquechose du genre :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Index = 8 Then
Application.Calculation = xlCalculationManual
Sh.EnableCalculation = True
Else
Sheets(8).EnableCalculation = False
Application.Calculation = xlCalculationAutomatic
End If
End Sub

Code à insérer dans 'ThisWorkbook'.
(F9 lance le calcul de la feuille 8)

Cela te convient-il ?

Cordialement

Rai