Bonjour !
Je travaille sur mon premier projet VBA Excel depuis bientôt un an et demi, étant novice, votre aide m'a permis de résoudre tous mes problèmes et je me retrouve aujourd'hui avec un outils tout simplement génial ! Un grand merci donc !
Il est tellement complet, qu'Excel rame à chaque interaction ou presque. Je suis donc en quête de conseils pour améliorer tout ça...
J'ai isolé par déduction une fonction, j'aimerais votre avis pour l'améliorer :
Objectif : Les utilisateurs du programme doivent pouvoir modifier des cellules contenant des formules sans pour autant les effacer.
Solution : J'ai mis mes formules dans une autre cellule et utilisé ce code :
Tout fonctionne bien, mais j'ai une vingtaine de bloc comme celui ci parmi les 1000 lignes de codes VBA et les calculs des formules Excel --> ça rame.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 If Target.Count = 1 And Target.Address = "$C$5" Then Application.EnableEvents = False Target.Offset(1, 0).Value = Target.Offset(1, 2).Value Target.Offset(2, 0).Value = Target.Offset(2, 1).Value Target.Offset(3, 0).Value = Target.Offset(3, 1).Value Target.Offset(4, 0).Value = Target.Offset(4, 1).Value Target.Offset(6, 0).Value = Target.Offset(6, 1).Value Target.Offset(7, 0).Value = Target.Offset(7, 1).Value Target.Offset(8, 0).Value = Target.Offset(8, 1).Value Target.Offset(9, 0).Value = Target.Offset(9, 1).Value Target.Offset(10, 0).Value = Target.Offset(10, 1).Value Target.Offset(13, 0).Value = Target.Offset(13, 1).Value Target.Offset(14, 0).Value = Target.Offset(14, 1).Value Target.Offset(15, 0).Value = Target.Offset(15, 1).Value Target.Offset(16, 0).Value = Target.Offset(16, 1).Value Application.EnableEvents = True End If
J'utilise déjà :qui est très efficace, puis j'ai essayé d'utiliser :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.ScreenUpdating = False
le temps de calcul est réduit à 0, mais la fonction ne s'exécute plus...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.Calculation = xlCalculationManual
Je sèche, et recherche tout bon conseil.
Merci d'avance et bonne journée !
Partager