Macro ralenti à cause d un Private Sub Worksheet

DERKOO

XLDnaute Junior
Bonjour forum

J'ai un fichier de plusieurs macro.
Certaines d´entre elles mettent pas mal de temps à s´executer.
Notamment ma macro 'REset' qui efface le contenu de certaines cellules..

La raison c´es ce code qui:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range('b8')) Is Nothing Then
If Range('b8') <> '' Then
Range('f8') = Date
Else
Range('f8') = ''
End If

End If

End sub

influe enormément sur la vitesse d execution de ma fct 'Reset'.
Qd je quitte le prg du dessus, la macro 'reset' s execute a toute vitesse...
Ds le cas contraire ca varie entre 20 et 30 sec...
En fait, lorsque le 'reset' passe de cellule en cellule, à chaque fois le prg du dessus s execute.. qui n´a rien a voir avec le reset.

Qqun aurait une idée de comment régler le pb

Faut il eviter d utiliser les Private Sub Worksheet_Change??
Je ne sais pas faire autrement.. JE ne sais pas realiser des macros qui peuvent s executer automatiquement sur un changement d etat de cellule.

Merci d avance pour vos conseils...

Derkoo
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour derkoo, le forum

mets au début de ta procédure reset l'instruction
Application.EnableEvents = False
cela désactivera les événements (dont change)
ne pas oublier à la fin des traitements de réactiver les événements par
Application.EnableEvents = True
ensuite un petit
Application.Calculate
déclenchera un recalcul du classeur (les événements étaient désactivés)

Cordialement, A+
 

Discussions similaires

Statistiques des forums

Discussions
312 472
Messages
2 088 712
Membres
103 930
dernier inscrit
Jibo