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,
Découvrez les méthodes pour optimiser la fonctionnalité Excel tels que des liens, les recherches, formules, fonctions et code VBA pour éviter les obstacles courants et améliorer les performances.
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.
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"
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.
J'ai sélectionné toutes les lignes de ma feuilles (de la ligne 7 à la dernière ligne)
J'ai ensuite ouvert un classeur "tout neuf LOL".
J'ai collé - valeur dans ce nouveau classeur
et là, le Masquage/affichage est également instantané
Bonsoir le fil,
Question stupide : Qu'est ce qui vous empeche de copier coller les lignes dans une nouvelle feuille d'un nouveau dossier et d'utiliser celui ci ?
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,
Bonjour tout le monde,
En repartant du post #24, je reconstruirais un fichier complet.
Même si on ne comprendras jamais le pourquoi, le principal est de trouver une solution qui marche.
Mais mettez le en xlsb, l'impact sur la taille est vraiment intéressant.
C'est aussi dans mes prévisions mais il me faudra bcp de temps pour le moment, je n'ai pas ce temps; je dois trouver la solution
il est déjà (depuis) longtemps en binaire