faire un raffraichissement de plusieurs sommes en boucle

cheechwizard

XLDnaute Occasionnel
Bonjour à tous et à toutes

Suite à une macro que j'ai récupéré sur le forum je fais un calcul selon la couleur de police (en rouge). j'ai environ 500 lignes à calculer ce qui fait que le système est très lent et lorsque je fais des modifications dans ma colonne le calcul ne se fait pas automatiquement.

j'ai donc décidé de faire une macro pour raffraichir mon total avec un bouton voici la macro :

Sub rafraichissement()
'
' rafraichissement Macro
' Macro enregistrée le 14/11/2008 par Ferma
'

'
Range("El518").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[1]C<>"""",SomCouleurFont(R[-512]C:R[-40]C,Code!R1C2)-R[1]C,SomCouleurFont(R[-512]C:R[-40]C,Code!R1C2))"
Range("EK519").Select
End Sub


Mon problème est le suivant j'ai un nombre important de colonnes et trois lignes de totaux : en 518, 519 et 520, et un nombre de colnnes qui va jusqu'à EL pour le moment mais qui va probablement augmenter aussi...

Je voudrai pouvoir grâce à ma macro réactualiser le total des 3 lignes dans chaque colonne avec un seul "clic" sur le bouton de ma macro.

Pouvez-vous m'aider ?

Cordialement Cheechwizard
 

Gael

XLDnaute Barbatruc
Re : faire un raffraichissement de plusieurs sommes en boucle

Bonjour Cheechwizard, bonjour Kjin,

Une solution peut-être que j'utilise souvent pour réduire les temps de réponse avec le calcul partiel. C'est très efficace car cela évite le recalcul de tout le classeur lorsqu'une seule valeur est modifiée.

Tu définis le mode de calcul en manuel à l'ouverture du fichier:

Code:
Private Sub Workbook_Open()
Application.Calculation = xlCalculationManual
End Sub

Et une procédure évènementielle réalise le calcul sur la ligne modifiée et les lignes de totaux. Par exemple dans ton cas:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Target.EntireRow.Calculate
Rows("518:520").Calculate
End Sub

@+

Gael
 

cheechwizard

XLDnaute Occasionnel
Re : faire un raffraichissement de plusieurs sommes en boucle

merci Kjin et Gael

J'ai repris votre code Gael que j'ai mis dans 2 modules et cela fonctionne parfaitement.

Je m'en tiendrai à cela

Je vous remercie de votre sollicitude à tous les deux

Pascal:)
 

Discussions similaires

Statistiques des forums

Discussions
312 331
Messages
2 087 360
Membres
103 528
dernier inscrit
hplus