Bonjour,
J'ai un problème de gestion de la mémoire et d'utilisation des ressources que je n'arrive pas à résoudre ...
J'ai un Classeur Excel 2003 sur lequel j'aimerais effectuer une macro sur une ligne à chaque modification d'une cellule de cette ligne.
Ainsi, dans le code de Feuil1, je mets :
Private Sub Worksheet_Change(ByVal Target As Range)
For Each Cellule In Target
If Cellule.Column <> Alertes_Col Then
l = Cellule.Row
If l <> old Then
Call Module5.Verif
old = l
End If
End If
Next
End SubMon
Module5.Verif contient une macro qui vérifie des choses dans la cellule.
Lorsque je l'appelle depuis un bouton placé sur ma feuille (et non pas automatiquement a chaque modif), cette macro marche parfaitement et c'est super rapide (c'est fait pour etre a chaque modification de cellule, donc c'est instantané le resultat)
Seulement dès qu'elle se lance d'elle meme quand je fais une modif dans une cellule, ca me mets une erreur
28 : Espace Pile Insuffisant. De plus, ca mets un certain temps avant d'afficher cette erreur, ca réfléchit anormalement.
J'ai essayé plusieurs méthodes :
1. Call Module5.Verif=> cf plus haut
2. Executer à l'intérieur de Feuil1
=> Beaucoup trop lent, et si j'utilise des fonctions : Espace Pile Insuffisant
3. Verif(l) où l est la ligne=> Beaucoup trop lent, et Espace Pile Insuffisant
4. Le meilleur : Verif.Show où Verif est un UserForm qui execute la macro au chargement.
==> Parfait, cependant le UserForm se charge, et ne se ferme pas de lui même ...
Si je le fais se fermer par Verif.Hide, comme j'ai mis le code dans UserForm_Initialize, il ne le refait pas lors du prochain Verif.Show ...
Enfin bref, comment la faire executer de facon "normale" sans qu'elle rame, comme si je cliquais simplement sur le bouton (qui lui marche parfaitement) ... ?
merci !
$p00ky
______________________________________________
.:: KoC-FR ::. Alliance Francophone Kings of Chaos
Venez jouer au meilleur MMORPG gratuit et facile !