[VBA] travailler sur un tableau pendant qu'un programme tourne

travailler sur un tableau pendant qu'un programme tourne [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 15-01-2014 à 11:38:16    

Bonjour,
 
Après des recherches, je ne suis pas arrivée à répondre à ma question.
En effet, si on lance un programme VBA d'un fichier, je n'ai pas accés au tableur pour un autre fichier.
 
Comment faut-il faire pour travailler sur un fichier lambda d'excel pendant qu'un programme VBA d'un autre fichier tourne ?
 
Merci par avance de vos réponses.
 
Bonne journée,
Julie

Reply

Marsh Posté le 15-01-2014 à 11:38:16   

Reply

Marsh Posté le 15-01-2014 à 14:36:21    

 
           Bonjour,
 
           Excel n'étant pas multi-tâches …
 
           Pour un développeur, il faudrait tenter de lancer le programme via une autre instance ou via un script Windows;
 
           pour un non développeur, on oublie, et on profite du lancement pour une pause café par exemple !
 

Reply

Marsh Posté le 15-01-2014 à 14:38:29    

Tant pis.
 
Merci quand même de la réponse, elle me sera utile quand les autres utilisateurs me posera la question.
 
Merci encore Marc.
 
Julie

Reply

Marsh Posté le 15-01-2014 à 14:46:13    

 
           Si dans le code du programme il y a une boucle, avant le  Next  ou le  Loop  placer une ligne DoEvents :
           cela peut ralentir la boucle mais donne la main au système et donc à une autre application,
           pas top mais peut-être tolérable dans certains cas …
 

Reply

Marsh Posté le 15-01-2014 à 15:11:56    

Comme les applications ne contiennent pas spécialement de boucle.
Elles prennent des informations des userforms et appelle un autre programme.
 
Merci encore de vos réponses,
 
Cordialement,
Julie

Reply

Marsh Posté le 15-01-2014 à 15:39:03    

 
           Autre cas :  un mauvais programme ou non optimisé …
 
           Cas d'école sur un autre forum : une procédure nécessitant plus d'une heure et demie raccourci à un p'tit quart d'heure !
 
           De mon côté, j'ai réduit la procédure d'une bouton qui prenait à chaque clic environ 48 secondes
           à 2 secondes lors du premier appel et à un dixième de seconde lors des appels suivants !
           Ou encore une procédure de dénombrement de 93 secondes réduite à 2 dixièmes …
 
           Il est bon de savoir qu'un code généré par l'Enregistreur de macro sera assez rapide sous Excel 2003
           mais à partir de la version 2007 et valable même pour la version 2013, cela prendra 3 à 5 fois plus de temps,
           tests effectués sur un autre forum avec les mêmes données !
 
           Donc à éviter ces affreux ralentisseurs de Select, Selection, Activate
 
           http://www.developpez.net/forums/images/smilies/alerte2.gifA lire …


Message édité par Marc L le 15-01-2014 à 15:44:18
Reply

Marsh Posté le 15-01-2014 à 16:02:58    

je vais lire tout ça.
 
J'espère que cela pourra m'aider aussi à comprendre le fonctionnement de VBA.
 
Merci encore,
 
Cordialement,
Julie

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed