IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

VBA - Charger un nombre de lignes dans un tableau


Sujet :

VBA

  1. #1
    Candidat au Club
    Homme Profil pro
    Apprenti Ingénieur Développeur
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti Ingénieur Développeur

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 4
    Points
    4
    Par défaut VBA - Charger un nombre de lignes dans un tableau
    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. #2
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    pour pouvoir vous aider, nous avons besoin de plus d'infos !
    le mieux est de placer le code de ce que vous avez déja fait !

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    Bonjour
    tu n'a pas besoins de faire ca
    il y a les variables tableaux pour ce genre de truc
    mais ne sachant rien d'autre sur le contexte ta demande restera sans réponse

    1° d'où viens ta table et sous quelle forme
    2°le format de destination est il identique
    etc... et bien d'autre questions
    mais si tu réponds a ces deux question voir même un exemple de ta table
    tu aura une réponse mieux adaptée a mon avis

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Excel est conçu pour calculer et non pas pour gérer des données en masse.
    Pour gérer de grosses quantités de données, il faut passer sur un logiciel de base de données, par exemple MS ACCES (si tu veux rester dans la sphère Microsoft) ou Libre Office Base (si tu n'as pas de sous à dépenser).

    Mais ce que tu dis est étonnant. Tu parles en centaines de lignes, ce qui n'est pas énorme.
    Perso, j'ai déjà traité en Excel des fichiers de plus de 10 000 lignes, une centaine de colonnes et une douzaine d'onglets, avec des fonctions matricielles assez lourdes comme FREQUENCE et ça ne mettait pas deux heures à charger.
    Tu es sûr qu'il n'est pas possible de faire quelque chose dans le fichier lui-même pour améliorer le problème ?

  5. #5
    Candidat au Club
    Homme Profil pro
    Apprenti Ingénieur Développeur
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti Ingénieur Développeur

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bonjour à tous,

    D'abord je vous remercie d'avoir répondu à ma requête.

    J'ai "disséqué" Excel et j'ai trouvé une fonction qui a répondu à mes besoins : private sub worksheet_selectionchange
    Cela m'a permis de charger les x lignes suivantes quand l'utilisateur arrive à la ligne y.
    Mais mon problème résidait dans les multilignes (alt+entrée), leur chargement était bien trop lent. Ce problème a été résolu avec la même fonction en ajoutant un simple :

    With Selection
    .WrapText = True
    End With


    Cela m'a permis de passé de 8265 secondes (aïe) à 188 secondes.



    Cordialement, 0zh0u.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/07/2013, 09h01
  2. Nombres de lignes dans un tableau JTable
    Par demcoul dans le forum Composants
    Réponses: 1
    Dernier message: 28/09/2009, 16h45
  3. Réponses: 1
    Dernier message: 24/04/2007, 17h20
  4. [MySQL] Nombre de lignes dans un tableau
    Par philippef dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/02/2007, 18h35
  5. [VBA-E] connaitre le nombre de ligne dans un tableau excel
    Par bigbarbe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2006, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo