Bonsoir,
>les formules matricielles ralentissent trop le fonctionnement de mon fichier qui est volumineux.
1- Ce n'est pas en décomposant une formule matricielle en plusieurs formules que la vitesse sera améliorée.
2- En écrivant une seule formule matricielle sur un champ et non pas dans une cellule et en la recopiant, on peut diviser le temps d'exécution par 10.
a/ La formule matricielle est écrite une seule fois dans un champ
http://boisgontierjacques.free.fr/fichiers/Matriciel/TriMat.xls
-Sélectionner D2:D1000
=INDEX(champ;EQUIV(GRANDE.VALEUR(NB.SI(champ;">="&champ);LIGNE(INDIRECT("1:"&LIGNES(champ))));NB.SI(champ;">="&champ);0))
-Valider avec Maj+ctrl+entrée
-Pour 1000 éléments: si on modifie une cellule, temps recalcul = 1sec au lieu de 10 sec
b/ La formule est écrite dans une cellule puis recopiée
=SI(LIGNES($1:1)<=NBVAL(champ);INDEX(champ;EQUIV(PETITE.VALEUR(NB.SI(champ;"<"&champ);LIGNES($1:1));NB.SI(champ;"<"&champ);0));"")
Valider avec Maj+ctrl+entrée
Pour 500 éléments: Si on modifie une cellule: temps recalcul >10 sec
http://boisgontierjacques.free.fr/fichiers/Matriciel/TriMat2.xls
c/Pour un tri très rapide d'un fichier volumineux , le mieux est d'utiliser une fonction perso.
Pour utiliser une fonction perso, il n'est pas nécessaire de connaître VBA.
http://boisgontierjacques.free.fr/fichiers/fonctionsperso/FonctionListeTriee1.xls
d/Par macro
http://boisgontierjacques.free.fr/pages_site/evenements.htm#TriDyn
Ceuzin