Problème lenteur macro

jjjerome

XLDnaute Occasionnel
Bonjour à tous,

J'ai un problème pour adapté le code que j'ai obtenu avec l'enregistreur.
Je veux copier le contenu d'une feuille et le coller dans un autre fichier.

Mon cade obtenu est :
PHP:
 Sheets("Recap").Select
    Cells.Select
    Selection.Copy
    Workbooks.Open Filename:= _
        "D:\mon repertoire\Lmon fichier.xlsm"
    Range("A1").Select
    ActiveSheet.Paste


Je veux maintenant l'adapter et renseigner le chemin qui est indiqué sur mon classeur actif.

J'ai donc adapté le code ci-dessous, mais la macro très très lente. Pouvez vous m'aider à la simplifier et réduire le temps ??


PHP:
Dim Chemin As String
Dim NomFichier As String
Dim NomFichierEtChemin As String
Dim NomFichierSource As String
Dim LaLigne As Integer


Application.ScreenUpdating = False
On Error Resume Next
NomFichierSource = ActiveWorkbook.Name


'LaLigne = ActiveCell.Row
Chemin = Sheets("Lexique").Range("F2")
NomFichierEtChemin = Chemin


Workbooks(NomFichierSource).Sheets("Recap").Select
    Cells.Select
    Selection.Copy
    Workbooks.Open Filename:=Chemin

'Workbooks.Open Filename:=NomFichierEtChemin
    Range("A1").Select
    ActiveSheet.Paste
 

Dranreb

XLDnaute Barbatruc
Re : Problème lenteur macro

Bonjour
VB:
Dim Source As Range
Application.Calculation = xlCalculationManual
Set Source = ActiveWorkbook.Worksheets("Recap").Cells
Workbooks.Open Filename:=ActiveWorkbook.Worksheets("Lexique").Range("F2").Value
Source.Copy Destination:=ActiveSheet.Cells(1, 1)
Application.Calculation = xlCalculationAutomatic
À +
 

jjjerome

XLDnaute Occasionnel
Re : Problème lenteur macro

Bonjour Dranred et merci pour ta réponse,

Rien a dire, ça va BEAUCOUP plus vite !!!!! Merci !!!
Peux-tu me dire se qui ralentaissait la macro ? J'ai plusieurs autres macro qui sont encore plus longues à s'executer...
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Problème lenteur macro

Bonjour à tous
Bonjour Dranred et merci pour ta réponse,

Peux-tu me dire se qui ralentaissait la macro ? ...
Dranreb n'étant pas connecté:

il y a énormément de choses qui ralentissent une macro:
- les formules (sur la feuille)
- les Select ( dans les macros)
- ....................

ce qui est efficace pour accélérer une procédure:
Code:
Application.Calculation = xlCalculationManual
en début de code

et à la fin
Application.Calculation = xlCalculationAutomatic

à+
Philippe

Edit: un exemple en cliquant ci-dessous (voir réponse #9)
https://www.excel-downloads.com/threads/vba-application-screenupdating.191661/
 
Dernière édition:

jjjerome

XLDnaute Occasionnel
Re : Problème lenteur macro

Bonsoir et merci phlaurent55,

J'ai un message d'erreur quand le chemin indiqué n'existe pas, est possible de regler ce problème (ou indiquer que le chemin est NOK...à?
J'ai l'impression que la macro tourne en boucle 1 ou 2 fois, même quand l'onglet a copier est orsque vide, avez vous une idée ??
 
J

JJ1

Guest
Re : Problème lenteur macro

Bonsoir,
je cite Philippe :
ce qui est efficace pour accélérer une procédure:
Code:
Application.Calculation = xlCalculationManual
en début de code

et à la fin
Application.Calculation = xlCalculationAutomatic

en plus de la suppression de l'affichage.

Sauf que si je sors de la macro brutalement par ESC -Fin le calcul ne s'est pas fait et je perds les résultats.
Mais c'est vrai que ça booste la macro.

bonne soirée
 

Staple1600

XLDnaute Barbatruc
Re : Problème lenteur macro

Bonsoir à tous

Puisqu'il semble s'agir de copier une feuille d'un classeur vers un autre classeur, j'emprunte cette voie

Code:
Sub Macro1()
Dim wbk
With ThisWorkbook
    Set wbk = Workbooks.Open(Filename:=.Worksheets("Lexique").Range("F2").Value)
    .Worksheets("Recap").Copy after:=wbk.Sheets(1)
End With
wbk.Close True
End Sub
 
J

JJ1

Guest
Re : Problème lenteur macro

bonsoir le fil,
Je commentais le Application.Calculation = xlCalculationManual.
Dans mon code, le calcul matriciel ne se fait pas, sauf pour uniquement pour la dernière cellule quand la macro se termine.
Je n'arrive pas à comprendre cette commande?


A+
 

Discussions similaires

Statistiques des forums

Discussions
312 328
Messages
2 087 319
Membres
103 515
dernier inscrit
Cherbil12345