VBA - Charger un nombre de lignes dans un tableau

Résolu/Fermé
0zh0u Messages postés 4 Date d'inscription lundi 5 mai 2014 Statut Membre Dernière intervention 23 mai 2014 - Modifié par 0zh0u le 5/05/2014 à 15:40
0zh0u Messages postés 4 Date d'inscription lundi 5 mai 2014 Statut Membre Dernière intervention 23 mai 2014 - 14 mai 2014 à 09:40
Bonjour,

Voilà mon problème, j'ai une base de données dont une table contient beaucoup, mais vraiment beaucoup de lignes qui fait que mon fichier excel met 2h!!! pour charger son tableau.
J'ai tout essayé sauf une approche d'où ma présence :

J'espérais charger un nombre précis de lignes puis au fur et à mesure que je m'approche de ce nombre, le fichier charge les lignes suivantes.

Pour être plus clair, je vous donne un exemple :

- je charge les 500 premières lignes
- arrivé à la ligne 100, le fichier charge les lignes 501 à 600
- puis à la ligne 200, le fichier charge les lignes 601 à 700
- etc.

Le problème est que je ne sais pas trop comment coder ce bout de code.

Je vous remercie par avance pour votre aide,

Cordialement 0zh0u.

2 réponses

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
5 mai 2014 à 17:54
Bonjour,

en imaginant que ce soit possible, ce dont je doute, en quoi ça serait plus rapide ? Ca ne peut être que plus lent.
Regarde si tu n'as pas des formules lourdes qui serait réévaluées à l'ouverture, des liens externes etc.
Passe en calcul manuel et refuse la mise à jour des liens pour voir la différence.
Et si le fichier est sur réseau a-t-il un débit suffisant ?

eric

0
0zh0u Messages postés 4 Date d'inscription lundi 5 mai 2014 Statut Membre Dernière intervention 23 mai 2014
Modifié par 0zh0u le 14/05/2014 à 09:41
Bonjour,

D'abord je te remercie d'avoir répondu.
J'ai tout essayé, utilisation d'objet, des array, etc.
A l'ouverture, j'ai désactivé les événements, je les active seulement dans une condition précise.

J'ai "disséqué" Excel et j'ai trouvé une fonction : private sub worksheet_selectionchange, avec une petite boucle de recherche de cellule, cela m'a permis de charger x lignes si l'utilisateur clique sur la cellule y.
Cela m'a permis de passé de 8265 secondes (aïe) à 188 secondes.

Cordialement, 0zh0u.
0