Excel Calcule manuel/sur ordre de feuilles

Vince-C Messages postés 37 Statut Membre -  
 Audre -
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

3 réponses

Kaname63 Messages postés 9 Statut Membre 2
 
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
Audre
 
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 71831 Date d'inscription   Statut Contributeur Dernière intervention   17 379
 
En effet, Calcul manuel/automatique est une option du Classeur, pas une option de la Feuille de calcul.
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
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