Macro trop lente

odouane Messages postés 10 Date d'inscription jeudi 10 décembre 2009 Statut Membre Dernière intervention 31 mai 2013 - 31 mai 2013 à 13:51
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 6 juin 2013 à 16:31
salut

j'effectue un "somme.si" qui met beaucoup beaucoup de temps à s'exécuter
voilà mon code qui ralentit ma macro :

Range(Cells(2, 7), Cells(60000, 7)).FormulaR1C1 = _
"=SUMIF(C[-6]:C[-3],RC[-6],C[-3])"

y a t il un moyen d'accélérer la macro ?

merci pour votre aide

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
31 mai 2013 à 14:54
Bonjour,
Je ne vois à priori aucune possibilité d'accélérer.
Je vois par contre celle d'éviter de recommencer à chaque fois.
Ainsi :
Application.ScreenUpdating = False
  If Cells(2, 7).FormulaR1C1 <> "=SUMIF(C[-6]:C[-3],RC[-6],C[-3])" Then
    Range(Cells(2, 7), Cells(60000, 7)).FormulaR1C1 = "=SUMIF(C[-6]:C[-3],RC[-6],C[-3])"
  End If
  Application.ScreenUpdating = True

Le temps ne serait ainsi perdu que la toute première fois et pas les suivantes.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
odouane Messages postés 10 Date d'inscription jeudi 10 décembre 2009 Statut Membre Dernière intervention 31 mai 2013
31 mai 2013 à 16:14
j'ai testé et pas d'amélioration
c'est le même temps d'exécution
merci quand même
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
31 mai 2013 à 16:58
c'est le même temps d'exécution

Ben ! C'est ce que je t'ai dit ! Relis-moi :
Je vois par contre celle d'éviter de recommencer à chaque fois

Le temps ne serait ainsi perdu que la toute première fois et pas les suivantes

Je viens de tester : Long uniquement la première fois et immédiat les suivantes !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
31 mai 2013 à 17:52
Maintenant : il y aurait certainement quelque-chose d'intelligent à faire, mais il me faudrait pour cela mieux connaître ton application, à commencer par le nombre de lignes actuellement remplies en colonne A ou en colonne B ou en colonne D (celle de ces trois colonnes qui ne contiendrait pas elle-même des formules, mais qui contiendrait forcément une valeur (pas de blanc)). Une seule de ces trois colonnes suffit.
L'idée est de n'ajouter les formules de la colonne G que là où nécessaires et chaque fois que nécessaires.
Cette idée, toutefois, n'est valable que si les formules en colonne G ne doivent pas ensuite être modifiées.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
6 juin 2013 à 16:31
Bonjour odouane,

Est-ce qu'il y a vraiment 60000 lignes de données ?


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous