Excel Calcule manuel/sur ordre de feuilles

Fermé
Vince-C Messages postés 35 Date d'inscription mardi 21 juin 2011 Statut Membre Dernière intervention 3 mars 2019 - Modifié par Vince-C le 7/09/2011 à 11:35
 Audre - 14 déc. 2018 à 16:16
Bonjour,

Sur un fichier Excel j'ai plusieurs onglets dont 3 remplis de sommeprod. Etant donnée le nombre très important de sommeprod cela fait ramer le fichier. N'ayant pas besoin de mettre a jours ces 3 onglets a chaque ouverture du fichier je souhaiterais savoir si il est possible de lancer le calcule sur ordre uniquement pour les 3 onglet et de garder les autres en calcule automatique.

Merci par avance !

Vincent-C

A voir également:

3 réponses

Kaname63 Messages postés 6 Date d'inscription mardi 13 septembre 2011 Statut Membre Dernière intervention 20 octobre 2011 2
Modifié par Kaname63 le 13/09/2011 à 15:56
J'ai eu le cas d'un excel dépassant les 100 Mo... Et il fallait une minute de calcul. Donc pour passer outre le calcul automatique j'ai coder quelques lignes en VBA.


Dans le Workbook il faut que tu es au moins cela....
---------------------------------------------------------------------------------------------------

Private Sub Workbook_Open()
Application.Calculation = xlManual
End Sub

----------------------------------------------------------------------------------------------------

Dans chaque feuille tu dois mettre ce code...
----------------------------------------------------------------------------------------------------

Private Sub Worksheet_Activate()
ActiveSheet.Calculate
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Calculate
End Sub

Private Sub Worksheet_Deactivate()
ActiveSheet.Calculate
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Calculate
End Sub

-----------------------------------------------------------------------------------------------------

Cela te permettra de calculter à chaque changement dans la feuille

Après tu peux faire en sorte que certaines feuilles ordonnent les calculs à d'autres.
-----------------------------------------------------------------------------------------------------

Private Sub Worksheet_Calculate()
Feuil1.Calculate
End Sub

-----------------------------------------------------------------------------------------------------

A partir de cela tu peux même définir un ordre de calcul ... (si dessous)
-----------------------------------------------------------------------------------------------------

Private Sub Worksheet_Calculate()
Feuil1.Calculate
Feuil7.Calculate
Feuil10.Calculate
Feuil8.Calculate
Feuil25.Calculate
End Sub

-----------------------------------------------------------------------------------------------------

Après cela dépend comment tu veux ordonner le calcul commandé des feuilles

Par un bouton, par le calcul d'une autre feuille.... A toi de voir.

De plus tous le code si dessus te permettra de faire en sorte que seule la feuille active (celle que tu utilise) soit calculée, et/ou de calculer les feuilles dans l'ordre que tu le désire et quand tu le désire.

Attention, le code sera à adapter à ton fichier


En espérant t'avoir aider un peu

Kaname63
Windows Seven & XP // Office 2003 & 2007 // VB.net // Builder C++
2
Bonjour,

Tout d'abord merci Kaname pour le codage c'est beaucoup plus rapide maintenant!!

Par contre impossible de copier/coller d'une feuille à une autre... sauriez vous quel code je dois ajouter pour y parvenir svp?

Merci beaucoup
0
Raymond PENTIER Messages postés 58764 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 décembre 2024 17 256
13 sept. 2011 à 17:00
En effet, Calcul manuel/automatique est une option du Classeur, pas une option de la Feuille de calcul.
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
13 sept. 2011 à 22:41
Bonsoir,

Autre possibilité : tu gardes les formules sur 1 seule ligne et tu fais un copier-collage spécial valeur sur les autres lignes.
Le jour où tu fais des modif nécessitant une mise à jour, tu reconstitues les formules en recopiant la ligne conservée.

eric
0