Microsoft 365 Affichage lignes masquées - temps de traitement

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,

Je reviens sur un sujet déjà traité bien des fois.

Mais ma demande concerne mon "usine à gaz" comme dirait mon cher Gérard.
Je ne m'en sors pas et je me permets de vous exposer mon souci :

Dans mon fichier de travail, il y a environ 50 00 lignes et une 50 aine de colonnes.
Quand je veux afficher toutes les lignes, je ne sais pas pourquoi mais ça prend beaucoup de temps, 20 à 30 secondes en moyenne
et j'ai a le faire des dizaines de fois par jour. C'est beaucoup de temps perdu.


Dans un fichier vierge copié toutes mes lignes "uniquement les valeurs" pour tester si le problème est le même.
Dans ce fichier vierge, j'ai utilisé les codes suivants :
VB:
Sub haut_0()
Rows("3:35000").RowHeight = 0
End Sub
Sub haut_20()
Rows("3:35000").RowHeight = 15
End Sub

Sub Masquer()
Rows("3:35000").EntireRow.Hidden = True
End Sub
Sub Masquer1()
Rows("3:35000").EntireRow.Hidden = False
End Sub

Sub critere1()
Rows("2:2").Select
Selection.AutoFilter Field:=2, Criteria1:=Format(Range("a1"))
Exit Sub
End Sub

Sub Macro3()
Rows("2:2").Select
Selection.AutoFilter
End Sub

Et ces p'tits codes fonctionnent super ... c'est instantané !
(j'ai mis 22 colonnes colorées en vert clair)

Pourtant, dans mon fichier de travail
:
- pas de cellules fusionnées,
- pas de formatage spécial,
- pas de formules - que des valeurs
- 9 colonnes colorées en vert clair sur 45,
et quand je veux afficher toute les lignes, je désactive les codes avec :
Application.EnableEvents = False
Application.ScreenUpdating = False

J'ai fait un tas de tests ... de recherches ...
Je n'arrive pas à comprendre pourquoi c'est si long dans mon fichier de travail ?
Auriez-vous une idée sur ce qui pourrait occasionner un si long temps de traitement ?

Avec mes remerciements,
Je vous souhaite à tous et à toutes un beau dimanche,
Amicalement,
lionel,
 
Dernière édition:

laurent950

XLDnaute Barbatruc
Bonsoir,
Conseils pour éliminer les obstacles aux performances

Astuce VBA: Rédiger des macros plus rapides
https://www.lecfomasque.com/vba-rediger-des-macros-plus-rapides/


La Piste de sylvanus poste #19 : XLSM vs. XLSB — Revue de littérature
http://www.xlerateur.com/divers/2016/10/28/xlsm-vs-xlsb-revue-de-litterature-5396/

Conclusion : https://www.modano.com/forum/advantages_xlsb_excel_binary_workbook_format
Traduction : ci-dessous.
Le format binaire Excel 2007-16 (* .xlsb) enregistre les données dans un classeur Excel au format binaire au lieu du format XML (Extensible Markup Language). Le binaire (c'est-à-dire 1 et 0) est beaucoup plus efficace que le XML lisible par l'homme, donc le résultat est une taille de fichier beaucoup plus petite lorsqu'il est enregistré sur le disque. Cependant, le choix du format de fichier (c'est-à-dire XLSX vs XLSM vs XLSB) n'affecte PAS la vitesse de calcul d'Excel une fois les fichiers ouverts - c'est-à-dire qu'il n'affecte que l'ouverture des fichiers et enregistre la vitesse au niveau des performances. C'est la seule chose dans l'article lié qui est incorrecte.

Donc, lorsque l'on considère XLSM vs XLSB, je choisirais toujours XLSB à moins que pour une raison quelconque cela ne cause des problèmes, car la taille du fichier sur le disque sera plus petite. Mais ne vous attendez pas à un impact sur la vitesse de calcul une fois les fichiers ouverts.


Laurent
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re Bonjour le fil,
Effectivement en xlsb on gagne un temps appréciable. Mais je ne pense pas que ce soit votre problème. C'est trop rapide dans les deux cas.
En PJ, un fichier de 40000 lignes 90 colonnes ( pour être sous le Mo pour le mettre en PJ sans zip )
En xlsm, masquer de 3 à 35000 sur mon PC prends 70ms, en xlsb 31ms.
Et point intéressant le xlsm pèse 11418ko, le xlsb 986.
Pouvez vous le tester ?
On masque par "Test", on demasque par "Demasquer"
 

Pièces jointes

  • TestLigne.xlsb
    985.4 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
Je suis intimement convaincu qu'il y a une saloperie dans une cellule vide.
Juste une question : Dans le fil vous dites j'ai copié/collé dans un nouveau fichier c'est pareil.
Qu'entendez vous par copier ?
1- Je fais un select all et je colle dans un fichier vierge
2- Je copie que toutes les cellules utiles et je colle.
Si vous avez fait le premier cas alors il y a de fortes chances pour que vous ayez aussi copié la saloperie qui traine.
Dans ce cas essayez la seconde méthode.
 

Usine à gaz

XLDnaute Barbatruc
Bonjour Sylvanu, le Forum,

Mon fichier est déjà lourd mais j'y réfléchi effectivement, c'est une possibilité et ça permettra de voir si ça vient vraiment du fichier et pas de la feuille :)
je vais également voir en testant sur des fichiers en partant d'une copier avec 1000 lignes et + 1000 etc...
lionel,
 

Discussions similaires

Réponses
9
Affichages
266
Réponses
12
Affichages
460
Réponses
3
Affichages
337

Statistiques des forums

Discussions
314 627
Messages
2 111 303
Membres
111 094
dernier inscrit
MFrequence