Re : Macro stoppe sans raison apparente
Bonsoir,
Pour la réponse à votre question, cela est normal, lorsque la macro est entraint de s'exécuter, il ne faut plus toucher au clavier, car si vous toucher au clavier et que vous êtes sur une autre application comme vous l'avez d'écrit, cela influt sur la macro qui est en court d'éxécution.
je m'explique, la macro qui tourne pendant une durée x (on va dire 30 minutes) c'est mon cas chez moi. votre macro peux enregistrer autre choses que se qui est initialement prévu (comme si vous êtes sur word en même temps exemple :
15 minutes passe la macro tourne (il y a un copier qui se fait a se moment la sur excel ) vous êtes en parralléle sur Word(ou ailleur peux importe) vous faite un control + v (Copier au clavier) ===>>> entre temps le copier initial de votre macro est substitué par votre (copier coller que vous aver fait) la macro colle autres choses (c'est a dire se que vous avez copier dans word) et si plus loin la macro a besoin de cette choses que vous avz copier a la 15 minutes et doit sans servir a la 21 eme minutes (elle trouve pas ce qui devait etre initialement copier donc) la macro plante.
Conclusion une macro longue = ne pas toucher au clavier ni souris le temps de l'exécution de celle-ci.
ce site est très bien fait : il y a une partie de de mon explication.
ftp://ftp2.developpez.be/developps/vb/VB-excel2.pdf
Bloquer les actions clavier & souris
On peut, pendant l'exécution d'un code assez long, bloquer le clavier et la souris afin que l'utilisateur ne
puisse pas agir sur Excel pendant que celui ci travaille. Néanmoins, comme la méthode présente un risque il faut
impérativement avoir un contrôle d'erreurs afin de pouvoir réactiver le clavier et la souris en cas de problème.
Public Sub LongTraitement()
On Error GoTo restauration
With Application
.DisplayAlerts = False
.ScreenUpdating = False
.Interactive = False
End With
'début du traitement long
restauration:
With Application
.DisplayAlerts = True
.ScreenUpdating = True
.Interactive = True
End With
End Sub
On utilise très souvent le mode Interactive False en pilotage VB. Le blocage du clavier n'empêche pas la
saisie dans les UserForms.