XL 2016 Classeur de 1.5 Mo trés lent à l'ouverture et R.A.S lors de l'enregistrement

MCMAL

XLDnaute Nouveau
Bonjour à Tous,

J'ai un classeur comportant plusieurs formules et mises en forme (une bonne partie supprimée via XLSTYLES Tools). Cependant, à l'ouverture il prend au max 5 mn pour afficher tous les onglets du classeur. J'ai cherché sans succès pendant une semaine afin d'essayer d'accélérer l'ouverture du classeur et éviter le message "Excel ne répond pas !".

Serait-il possible de partager des pistes me permettant de trouver une ou des solutions.

A défaut, j'aimerai afficher un message "Veuillez patienter ...". Ce message d'information doit en principe s'afficher à ma première minute.

Pour info, le fichier ne peut être chargé car hyper confidentiel. Merci pour votre compréhension

Au plaisir de vous lire

Trés cordialement
 

MCMAL

XLDnaute Nouveau
Bonsoir à Tous,

Voici les 2 codes qui m'ont permis de gagner 2 mn dans les 5.

VB:
Private Sub Workbook_Open()
    Application.DisplayAlerts = False 'messages excel
    Application.ScreenUpdating = False 'rafraichissement ecran (pour ne pas voir défiler les macros)
    Application.Calculation = xlCalculationManual ' supprime calcul auto EXCEL pour gagner du temps.  A remettre dans fin_sub

ActiveWorkbook.Unprotect Password:="DupondMarie"

Sheets("MENU").Select
Range("A1").Select

ActiveWorkbook.Protect Password:="DupondMarie", Structure:=True, Windows:=False

    Application.DisplayAlerts = True
    Application.ScreenUpdating = True 'rafrfraichissement ecran
End Sub

------------
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  Application.Calculation = xlCalculationAutomatic
End Sub
 

kiki29

XLDnaute Barbatruc
Salut, est-ce que cela aidera ?

Erreur Excel attend la fin de l’exécution d’une action OLE

VB:
Private Declare Function _
    CoRegisterMessageFilter Lib "OLE32.DLL" _
    (ByVal lFilterIn As Long, _
    ByRef lPreviousFilter) As Long

    
.....

Dim lMsgFilter As Long

' Intercepter les messages OLE
CoRegisterMessageFilter 0&, lMsgFilter

' Code faisant un appel OLE

' Restaurer les messages OLE
CoRegisterMessageFilter lMsgFilter, lMsgFilter   

.....
 

MCMAL

XLDnaute Nouveau
Salut, est-ce que cela aidera ?

Erreur Excel attend la fin de l’exécution d’une action OLE

VB:
Private Declare Function _
    CoRegisterMessageFilter Lib "OLE32.DLL" _
    (ByVal lFilterIn As Long, _
    ByRef lPreviousFilter) As Long

   
.....

Dim lMsgFilter As Long

' Intercepter les messages OLE
CoRegisterMessageFilter 0&, lMsgFilter

' Code faisant un appel OLE

' Restaurer les messages OLE
CoRegisterMessageFilter lMsgFilter, lMsgFilter  

.....
Merci @kiki29, mais j'ai du mal à insérer le code ci-dessus.
 

MCMAL

XLDnaute Nouveau
Bonsoir à Tous,

Je tiens à vous informer que j’ai pu régler mon problème d’ouverture du fichier xls qui prenait entre 3 à 6 mn pour afficher l’ensemble des onglets du classeur.

Pour info, l’origine de la lenteur à l’ouverture du classeur se situait au niveau des onglets, un total de 129, qui étaient tous affichés en mode « Aperçu des sauts de page ».

Une fois le mode d’affichage des onglets mis en « Normal », le classeur s’ouvre en quelques seconde.

Je tiens à remercier tous les experts qui m’ont apporté leurs aides

MCMAL