XL 2013 Chargement de plusieurs fichiers à l'ouverture du classeur

Felicite1976

XLDnaute Nouveau
Bonjour tout le monde
Je suis à la recherche d'une solution pour un problème de chargement à l'ouverture de mon classeur .
Au fait j'ai un classeur de plusieurs feuilles accessibles par plusieurs utilisateurs ,le code marche très bien mais ça prend 10 minutes pour se charger.
j'ai mi un bouton lié au code suivant qui permet de charger le classeur.
Es ce qu'il n'ya pas d'autres moyens pour alleger ce chargement
MErci
VB:
Sub SAVEAS_2010()
Application.ScreenUpdating = False
'Application.Calculation = xlCalculationManual
'Declaration des variables
Dim i As Integer
Dim password As Variant
password = InputBox("Veuillez entrer à nouveau votre mot de passe SVP")

If password = "Bernard" Then
Sheets("Table_bord_ServiceA_DIS").Visible = True
Worksheets("Table_bord_ServiceA_DIS").Select
End If

If password = "ADMIN" Then
Sheets("Tableau de bord").Visible = True
Worksheets("Tableau de bord").Select

End If
If password = "Moore" Or password = "Maheux" Then
Sheets("Table_bord_DIS").Visible = True
Worksheets("Table_bord_DIS").Select

End If
If password = "Robert" Or password = "Georges" Then
Sheets("Table_bord_BEHESP").Visible = True
Worksheets("Table_bord_BEHESP").Select

End If

If password = "Alain" Or password = "Daniel" Then
Sheets("Table_bord_DICC").Visible = True
Worksheets("Table_bord_DICC").Select

End If


If password = "Gilles" Or password = "Aliou" Then
Sheets("Table_bord_Service_DSEQI").Visible = True
Worksheets("Table_bord_Service_DSEQI").Select

End If

DIS_DKR
DIS_SL
DIS_KL
DICC_DKR
DICC_SL
DICC_KL
Service_BE
DIS_DKR_Qualite
DIS_DKR_Qualite_Pourcent
DIS_SL_Qualite
DIS_SL_Qualite_Pourcent
DIS_KL_Qualite
DIS_KL_Qualite_Pourcent
DICC_DKR_Qualite
DICC_DKR_Qualite_Pourcent
DICC_SL_Qualite
DICC_SL_Qualite_Pourcent
DICC_KL_Qualite
DICC_KL_Qualite_Pourcent
ABS_DIS_DKR
ABS_DIS_SL
ABS_DIS_KL
ABS_DICC_DKR
ABS_DICC_SL
ABS_DICC_KL
ABS_SHESP
ABS_DIS
ABS_DICC
ABS_BEHESP
ABS_DSEQI
ABS_DSEQI_DSI
ABS_DSEQI_DTNC
MVA_DIS_DKR
MVA_DIS_SL
MVA_DIS_KL
MVA_DICC_DKR
MVA_DICC_SL
MVA_DICC_KL
MVA_SHESP
MVA_DIS
MVA_DICC
MVA_BEHESP
MVA_DSEQI
MVA_DSEQI_DSI
MVA_DSEQI_DTNC
Application.ScreenUpdating = True
End Sub
 

Nairolf

XLDnaute Accro
Salut,

As-tu fais des tests d'exécution avec des balises afin de repérer les actions les plus longues ?

En tout cas, j'ai déjà une remarque, concernant ta structure : la suite de if/endif n'est pas bonne car le code passe chaque action alors que ce n'est pas nécessaire. Pour pallier ce problème, il existe plusieurs possibilités, dont :

  • If/else if/endif :
Code:
If password ="Moore" then
     Sheets("Table_bord_ServiceA_DIS").Visible = True
     Worksheets("Table_bord_ServiceA_DIS").Select
 Else If password ="ADMIN" then
...
Endif
  • Select case :
Code:
Select Case password
Case "Moore"
     Sheets("Table_bord_ServiceA_DIS").Visible = True
     Worksheets("Table_bord_ServiceA_DIS").Select
Case "ADMIN"
...
End Select

En pensant à classer les cas dans l'ordre le plus probable d'usage.
 

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch