Travailler sur excel pdt l'exécution d'une macro

Adz

XLDnaute Nouveau
Bonjour tlm,
J'ai fait un programme en vba qui prends des données dans différents classeurs et feuilles de classeurs et qui copie ces données dans un autre classeur. Le problème c'est que l'exécution du programme dure environ 30 ou 40 secondes, et j'aimerais savoir s'il y a un moyen pour que, pendant l'exécution du programme, on puisse faire autre chose sur excel.
Car j'utilise des worksheets.select, et je ne peux rien faire pendant que ke programme est en marche.

Voila, je vous remercie encore ^^, Ciao
 

job75

XLDnaute Barbatruc
Re : Travailler sur excel pdt l'exécution d'une macro

Bonjour Adz,

j'aimerais savoir s'il y a un moyen pour que, pendant l'exécution du programme, on puisse faire autre chose sur excel.

Sur Excel, pendant l'exécution d'une macro, il faut attendre tranquilou que ça se passe : aller prendre un café par exemple.

On peut aussi passer le temps en regardant une barre de progression ou un UserForm ouvert à cet effet (faire des recherches sur le forum).

Mais surtout, pendant ce temps là, on peut travailler sur d'autres applications (Word...).

A+
 

Adz

XLDnaute Nouveau
Re : Travailler sur excel pdt l'exécution d'une macro

A oui c'est vrai ca.
Mais justement je viens de me rendre compte de quelque chose. En fait la j'ai lancé ma macro, et pendant son exécution, je suis allé sur word (ou meme internet), et en fait quand je fais ca, et bien la macro n'avance pas, en tout cas pas vite du tout, et il faut que je retourne sur la page excel pour que la macro reprenne.
Y a-t-il un moyen pour que la macro continue de s'exécuter? ou alors aussi, comme ma macro consiste a copier un grand nombre de ligne, peut-on faire en sorte qu'il copie tout sans qu'on le voit, et que la page excel se rafraichisse qu'une fois la macro finie?

Je vous remercie encore ^^
 

mromain

XLDnaute Barbatruc
Re : Travailler sur excel pdt l'exécution d'une macro

bonjour Adz, job75, eriiiic,

pour désactiver l'affichage d'excel (ça accélère les macros), il suffit de rajouter en début de macro :
Code:
Application.ScreenUpdating = False
et en fin de macro :
Code:
Application.ScreenUpdating = True

a+
 

eriiic

XLDnaute Barbatruc
Re : Travailler sur excel pdt l'exécution d'une macro

Re,

Car j'utilise des worksheets.select
Cette partie peut sans doute être améliorée.
Les .select sont presque toujours inutiles et consomment beaucoup de ressources.
Et si en plus tu déclares tes feuilles des différents classeurs sources dans des variables le code s'éclairci.
Ex:
Dim sh1 As Worksheet
Set sh1 = Workbooks("Classeur2.xls").Worksheets("Feuil1")
' copier une cellule de sh1 dans le classeur actif
[A1] = sh1.[C4]

eric
 

Discussions similaires

Réponses
9
Affichages
217

Statistiques des forums

Discussions
312 491
Messages
2 088 888
Membres
103 982
dernier inscrit
krakencolas