Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lenteur

4 réponses
Avatar
PascalBar
Bonjour à tous,

Sous 2003
J'ai deux classeurs un Bilan xls et un data xls.
Sur le workbook_open de bilan j'ai cette procédure

Private Sub Workbook_Open()
Dim Dest, Srce As Workbook

On Error Resume Next

Application.ScreenUpdating = False

Application.DisplayAlerts = False


Set Dest = Sheets("data").[Tablo]
Set Srce = Workbooks.Open(ThisWorkbook.Path &
Application.PathSeparator & "data_analyse.xls")
[Tablo2].Copy Dest2


Srce.Close

Application.ScreenUpdating = True

Application.DisplayAlerts = True

Chargée de récupérer les données de data xls et de les coller dans la
feuille data de bilan.
Cela fonctionne mais j'attends 15 secondes avant de rependre la main
Je ne comprends pas où je merdouille.
sur data.xls la feuille à copier est nommée dynamiquement sur 5200 ligne
et 8 colonnes.

Des idées?
Merci de vos contributions
Pascal

4 réponses

Avatar
Jacquouille
Bonjour
Dans vos feuilles, n'y aurait-il pas des calculs qui se font, refont, refont
.....à chaque fois?
Ceci dit, qu'est-ce que 15 secondes? Le temps de respirer un grand coup,
bien à fond...et c'est fait. -)

--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

"PascalBar" a écrit dans le message de news:
%23H%
Bonjour à tous,

Sous 2003
J'ai deux classeurs un Bilan xls et un data xls.
Sur le workbook_open de bilan j'ai cette procédure

Private Sub Workbook_Open()
Dim Dest, Srce As Workbook

On Error Resume Next

Application.ScreenUpdating = False

Application.DisplayAlerts = False


Set Dest = Sheets("data").[Tablo]
Set Srce = Workbooks.Open(ThisWorkbook.Path &
Application.PathSeparator & "data_analyse.xls")
[Tablo2].Copy Dest2


Srce.Close

Application.ScreenUpdating = True

Application.DisplayAlerts = True

Chargée de récupérer les données de data xls et de les coller dans la
feuille data de bilan.
Cela fonctionne mais j'attends 15 secondes avant de rependre la main
Je ne comprends pas où je merdouille.
sur data.xls la feuille à copier est nommée dynamiquement sur 5200 ligne
et 8 colonnes.

Des idées?
Merci de vos contributions
Pascal


Avatar
michdenis
Bonjour,

Essaie comme ceci :

En désactivant les procédures évènementielles.

'----------------------------------------
Private Sub Workbook_Open()
Dim Dest, Srce As Workbook
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Application.EnableEvents = False

Set Dest = Sheets("data").[Tablo]
Set Srce = Workbooks.Open(ThisWorkbook.Path &
Application.PathSeparator & "data_analyse.xls")
[Tablo2].Copy Dest2
Srce.Close

Application.EnableEvents = True

Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub
'----------------------------------------





"PascalBar" a écrit dans le message de groupe de discussion :
#H#
Bonjour à tous,

Sous 2003
J'ai deux classeurs un Bilan xls et un data xls.
Sur le workbook_open de bilan j'ai cette procédure

Private Sub Workbook_Open()
Dim Dest, Srce As Workbook

On Error Resume Next

Application.ScreenUpdating = False

Application.DisplayAlerts = False


Set Dest = Sheets("data").[Tablo]
Set Srce = Workbooks.Open(ThisWorkbook.Path &
Application.PathSeparator & "data_analyse.xls")
[Tablo2].Copy Dest2


Srce.Close

Application.ScreenUpdating = True

Application.DisplayAlerts = True

Chargée de récupérer les données de data xls et de les coller dans la
feuille data de bilan.
Cela fonctionne mais j'attends 15 secondes avant de rependre la main
Je ne comprends pas où je merdouille.
sur data.xls la feuille à copier est nommée dynamiquement sur 5200 ligne
et 8 colonnes.

Des idées?
Merci de vos contributions
Pascal
Avatar
PascalBar
michdenis a écrit :
Bonjour,

Essaie comme ceci :

En désactivant les procédures évènementielles.

'----------------------------------------
Private Sub Workbook_Open()
Dim Dest, Srce As Workbook
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Application.EnableEvents = False

Set Dest = Sheets("data").[Tablo]
Set Srce = Workbooks.Open(ThisWorkbook.Path &
Application.PathSeparator & "data_analyse.xls")
[Tablo2].Copy Dest2
Srce.Close

Application.EnableEvents = True

Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub
'----------------------------------------





"PascalBar" a écrit dans le message de groupe de discussion :
#H#
Bonjour à tous,

Sous 2003
J'ai deux classeurs un Bilan xls et un data xls.
Sur le workbook_open de bilan j'ai cette procédure

Private Sub Workbook_Open()
Dim Dest, Srce As Workbook

On Error Resume Next

Application.ScreenUpdating = False

Application.DisplayAlerts = False


Set Dest = Sheets("data").[Tablo]
Set Srce = Workbooks.Open(ThisWorkbook.Path &
Application.PathSeparator & "data_analyse.xls")
[Tablo2].Copy Dest2


Srce.Close

Application.ScreenUpdating = True

Application.DisplayAlerts = True

Chargée de récupérer les données de data xls et de les coller dans la
feuille data de bilan.
Cela fonctionne mais j'attends 15 secondes avant de rependre la main
Je ne comprends pas où je merdouille.
sur data.xls la feuille à copier est nommée dynamiquement sur 5200 ligne
et 8 colonnes.

Des idées?
Merci de vos contributions
Pascal



merci MichDenis,
Pas beaucoup de changements.
Cela doit provenir de mes zones nommées mais pourtant de Bilan à Data
elles sont de tailles identiques, dynamiques.
Avatar
Corona
Bonsoir,
Si tu as beaucoup de formules et surtout des fonctions volatiles telles
que DECALER, INDIRECT etc ... cela peut prendre quelques secondes
Ajoute ceci en début de procédure, par exemple juste après
Application.ScreenUpdating = False

mRecalc = Application.Calculation
Application.Calculation = xlCalculationManual
' Instructions
' ....
' A la fin des instructions rétablissement du mode recalcul d'origine
Application.Calculation = mRecalc

Philippe

PascalBar a écrit :
michdenis a écrit :
Bonjour,

Essaie comme ceci :

En désactivant les procédures évènementielles.

'----------------------------------------
Private Sub Workbook_Open()
Dim Dest, Srce As Workbook
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Application.EnableEvents = False

Set Dest = Sheets("data").[Tablo]
Set Srce = Workbooks.Open(ThisWorkbook.Path &
Application.PathSeparator & "data_analyse.xls")
[Tablo2].Copy Dest2
Srce.Close

Application.EnableEvents = True

Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub
'----------------------------------------





"PascalBar" a écrit dans le message de groupe de
discussion : #H#
Bonjour à tous,

Sous 2003
J'ai deux classeurs un Bilan xls et un data xls.
Sur le workbook_open de bilan j'ai cette procédure

Private Sub Workbook_Open()
Dim Dest, Srce As Workbook

On Error Resume Next

Application.ScreenUpdating = False

Application.DisplayAlerts = False


Set Dest = Sheets("data").[Tablo]
Set Srce = Workbooks.Open(ThisWorkbook.Path &
Application.PathSeparator & "data_analyse.xls")
[Tablo2].Copy Dest2


Srce.Close

Application.ScreenUpdating = True

Application.DisplayAlerts = True

Chargée de récupérer les données de data xls et de les coller dans la
feuille data de bilan.
Cela fonctionne mais j'attends 15 secondes avant de rependre la main
Je ne comprends pas où je merdouille.
sur data.xls la feuille à copier est nommée dynamiquement sur 5200 ligne
et 8 colonnes.

Des idées?
Merci de vos contributions
Pascal


merci MichDenis,
Pas beaucoup de changements.
Cela doit provenir de mes zones nommées mais pourtant de Bilan à Data
elles sont de tailles identiques, dynamiques.