Actualiser toutes les feuilles à l'ouverture du classeur

Bonjour

J'ai un classeur avec plusieurs feuilles liées et comportant beaucoup de données.

J'ai mis en place un code pour charger des données d'une feuille vers une autre en utilisant la fonction WorkSheet_Active()

et ça marche ,le problème qui se pose est que si j'active mes feuilles sa prend plus de 5 min à se charger.

Es ce qu'il y'a quelqu'un pour m'aider

Merci

Bonjour,

D'abord, il s'agit de Worksheet_Activate ! Et ce n'est pas une fonction. C'est une procédure dite évènementielle, qui intervient lors de l'activation de la feuille.

Ensuite, sous ce nom c'est une procédure propre à la feuille. Si l'action est commune tu as donc dû la multiplier sur autant de feuilles du classeur... Dans ce cas la bonne méthode aurait été d'utiliser la procédure Workbook_SheetActivate, au niveau classeur, correspondant au même évènement...

Enfin, si la mise à jour dont tu parles doit être faite en une seule fois, autant la placer à l'ouverture du classeur ! Donc utiliser la procédure Workbook_Open pour le faire.

Cordialement.

Merci MFerrend de ta réponse

J'ai essayé d'utilisé Workbook_Open mais pour le chargement aussi ça prend du temps .

Parce que j'avais mis les codes au niveau de la feuille concerné

Bonjour

je veux actualiser les feuilles SECURITE et CONSTRUCTION sans les activer , j'ai creé des codes au niveau de chaque feuille ,là j'ai juste mis 4 feuilles mais j'ai un classeur de plusieurs ca devient tres lent le chargement.si c'est de tout actualisé à l'ouverture du classeur

MErci

Oui, ça doit être un peut lent... !

Ce que je ne comprends pas, c'est le point de départ : pourquoi on part de la ligne 26 ? Et le test de dimensionnement : pourquoi sur la colonne Y ? qui est vide !

Remarque ça raccourcit la durée ! Le test renvoie 1, inférieur à 26, donc elle ne se lancera pas !

Bonjour MFerrand

Parce que j'ai commencé à la fin (fin = Feuil1.Range("Y" & Rows.Count).End(xlUp).Row) c'est pourquoi je teste avec 26 que je vais pas depasser.

je pouvais commencer par 1 et recuperer le debut ca change rien

Merci

Tant que cette colonne est vide, rien ne peut se passer ! C'est pourtant simple.

Merci MFerrand

J'ai utilisé les filtre avec critères et ça marche maintenant(CurrentRegion.AdvancedFilter Action:=xlFilterCopy, criteriarange:=)

Merci

Rechercher des sujets similaires à "actualiser toutes feuilles ouverture classeur"