Une macro qui fait ralentir le programme

Fermé
luky123654 Messages postés 54 Date d'inscription lundi 1 mai 2017 Statut Membre Dernière intervention 24 août 2018 - 10 août 2018 à 00:34
luky123654 Messages postés 54 Date d'inscription lundi 1 mai 2017 Statut Membre Dernière intervention 24 août 2018 - 10 août 2018 à 23:02
bonjour j' ais une macro qui ralenti le programme comment je peux faire pour il ralentit pas
voici
Function Couleur(cl As Range) As Long
Application.Volatile
Couleur = cl.Interior.ColorIndex
End Function
Function NVert(cl As Range) As Integer
Application.Volatile
Dim cel As Range
NVert = 0
For Each cel In cl
If Couleur(cel) = 14 Then
NVert = NVert + 1
Else
Exit For
End If
Next
End Function
merci pour votre réponce
bien à vous
luky
A voir également:

2 réponses

Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
10 août 2018 à 01:54
Bonjour.

Je suis plutôt incompétent en VBA.
Mais, en simple logique, je me dis que si ta macro examine toutes les cellules pour savoir leur couleur, et recommence le test à chacune de tes interventions dans la feuille, c'est forcément long.
Il faudrait que tu délimites la plage de testing, et que ce testing ne s'exécute qu'à ta demande expresse ...

J'espère t'avoir fourni des pistes.
0
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 28
10 août 2018 à 08:23
Bonjour,

Pourquoi avoir mis un Else exit for ? Dès qu'une plage de votre range n'est pas de la couleur recherché la boucle for s'arrête et ne comptabilisera pas les prochaines.
Est-ce fait exprès ?

Bonne journée
0
luky123654 Messages postés 54 Date d'inscription lundi 1 mai 2017 Statut Membre Dernière intervention 24 août 2018
10 août 2018 à 23:02
oui
0