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

Macros et VBA Excel Discussion :

[Excel-VBA]Pb de lire des fichiers textes et les mettre dans une table Variant


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 103
    Points : 98
    Points
    98
    Par défaut [Excel-VBA]Pb de lire des fichiers textes et les mettre dans une table Variant
    Bonjour tout le monde,

    J'ai besoin d'un exemple qui lit plusieurs fichiers texte en entrée(par ex: CSV), les stocker dans la mémoire dans un Variant, après les affiche tout d'un coup dans la sheet de destination.

    Qn pourrait me donner un bout de code comme exemple? Merci bcp!!


  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonsoir

    Pourquoi ne pas mettre directement le contenu dans la feuille de destination?

    Si c'est en raison d'une lenteur d'affichage, place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    application.screenupdating = false
    en début de macro et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.screenupdating = true
    en fin de macro...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    je rejoins Pierre, et à quoi sert de stocker les données dans un variant ?
    Citation Envoyé par tangjuncn
    Bonjour tout le monde,

    J'ai besoin d'un exemple qui lit plusieurs fichiers texte en entrée(par ex: CSV), les stocker dans la mémoire dans un Variant, après les affiche tout d'un coup dans la sheet de destination.

    Qn pourrait me donner un bout de code comme exemple? Merci bcp!!

    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  4. #4
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 103
    Points : 98
    Points
    98
    Par défaut
    Parce qu'il y a des manipulation et traitement de données à faire.
    Au paravant, l'exécution entre Excel et VBA sont bcp plus lent que de faire simplement tout dans VBA,non?
    Les gens m'on proposé de stocker toutes les donées dans une matrice de Variant, les manipuler et afficher d'un seul coup.
    Afficher sur la feuille et les manipuler ralentit.

    btw, il y a une méthode de récupérer directement une colonne de la matrice de Variant?
    je ne vois pas trop comment faire

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 103
    Points : 98
    Points
    98
    Par défaut
    qn sait si dans une table de 2 dimensions de variant, on peut récupérer directement une colonne ou pas?

  6. #6
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Dans ce cas, autant utiliser DAO et faire un recordset sur ton fichier .CSV

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub GetCol()
     
    Dim strPath As String
    Dim strTable As String
    Dim strFolder As String
     
    strPath = "c:\temp\dat.csv"
     
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
     
    strTable = Right(strPath, Len(strPath) - InStrRev(strPath, "\"))
    strFolder = Left(strPath, InStrRev(strPath, "\") - 1)
    Set db = DAO.OpenDatabase(strFolder, _
                            False, _
                            False, _
                            "Text;Database=" & strFolder & ";HDR=NO;Table=" & _
                                strTable)
     
    ' F1 = Field numéro 1
    Set rs = db.OpenRecordset("SELECT F1 FROM [" & strTable & "]", DAO.dbOpenSnapshot, _
                                    DAO.dbReadOnly, DAO.dbReadOnly)
     
    ActiveSheet.Range("A2").CopyFromRecordset rs
     
    Set rs = Nothing
    Set db = Nothing
     
    End Sub
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/07/2012, 13h34
  2. Réponses: 2
    Dernier message: 22/06/2008, 15h41
  3. Réponses: 10
    Dernier message: 10/02/2007, 18h44
  4. Lire un fichier Texte d'1 bloc dans une chaine
    Par User dans le forum Langage
    Réponses: 6
    Dernier message: 13/09/2006, 21h56
  5. Réponses: 3
    Dernier message: 09/09/2006, 13h24

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