boucle sur onglet lente

gvives

XLDnaute Occasionnel
Bonjour à tous,

Je souhaite masquer tous les onglets de mon classeur en mode xlveryhidden lors de la fermeture de mon classeur(dont le nombre est variable - environ 60 onglets) mon code fonctionne mais cela prend un certain temps et j'aimerais savoir si il existe une possibilité pour en accélérer l'exécution.

Voici mon code

Private sub workbook_beforeclose (cancel as boolean)
application.screenupdating = false
dim onglet as worksheet
for each onglet in worksheets
if onglet.name <> "titi" then
onglet.visible = xlveryhidden
end if
next
end sub

Merci à tous,

Bonne soirée !
 

Jack2

XLDnaute Occasionnel
Re : boucle sur onglet lente

Bonne nuit gvives,

Le code suivant cache instantanément 59 onglets
Code:
Private Sub workbook_beforeclose(cancel As Boolean)
Dim i As Integer
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
    If Sheets(i).Name <> "1" Then Sheets(i).Visible = xlVeryHidden
Next i
Application.ScreenUpdating = True
End Sub
Ton code est tout aussi rapide. Il y a peut être un problème dans ton fichier.

A+ Jack2
 

Dranreb

XLDnaute Barbatruc
Re : boucle sur onglet lente

Bonjour.
Essayez à tout hasard d'ajouter aussi Application.EnableEvents = False devant.
On pourrait imaginer que chaque feuille en se masquant provoque l'exécution d'une Worksheet_Activate de la suivante, après, d'ailleurs, celle de sa propre Worksheet_Deactvate.
 

gvives

XLDnaute Occasionnel
Re : boucle sur onglet lente

Merci à tous,

Jack2 : J'avais procédé de cette façon mais malheureusement ce code n'est pas plus efficace :(

Dranreb : Je n'y ai pas pensé mais tu as raison la majorité de mes feuilles ont des évènements de type Worksheet_Activate. Je sents que ça brûle ;)

Je ferai le test ce soir, je vous tiens au courant ;)

Merci encore à tous les deux et très bonne journée !
 

Discussions similaires

Réponses
2
Affichages
186
Réponses
2
Affichages
140

Statistiques des forums

Discussions
312 111
Messages
2 085 396
Membres
102 882
dernier inscrit
Sultan94