Import fichier csv dans une varaible tableau

Bonjour,

Je voudrais savoir si quelqu'un savait comment faire pour importer les données d'un fichier csv stocké dans un répertoire :

C:\Users\e552538\Desktop\Outils\ dans une variable tableau.

En effet je vais devoir parcourir ce tableau par la suite pour effectuer des calculs.

Je suis obligé de passer par un tableau car lorsque je fais mon import de fichier dans un de mes onglets, et que je veux utiliser les données remontées dans l'onglets; j'obtiens un bug et le message "Excel Ne répond plus". étant donnée qu'il y'a environ 800 000 données dans mon fichier.

pour éviter ce genre de bug, j'ai donc décider de charger ce fichier dans une variable tableau et d'utiliser ce tableau pour effectuer mes calculs.

Est ce que quelqu'un connait comment faire pour importer un fichier .csv avec séparateur ";" dans une variable tableau de vba Execl SVP ?

Merci d'avance pour votre aide.

Cdt,

Salut, pourras tu poster un exemplaire de fichier csv sur le forum?

Pour avoir des réponses plus ou moins rapide, il nous faut un support pour effectuer les tests, chacun de son coté.

Cordialement,

Bonjour,

une manière de charger un tableau à partir d'un fichier csv via VBA

Sub aargh()
    Dim tb()
    Open "test.csv" For Input As 1
    i = -1
    While Not EOF(1)
        Line Input #1, ligne
        i = i + 1
        l = Split(ligne, ",") '<- changer le séparateur par le ou les caractères qui conviennent
        If i = 0 Then ReDim tb(100000, UBound(l))
        For j = LBound(l) To UBound(l)
            tb(i, j) = l(j)
        Next j
    Wend
    Close 1
    MsgBox "données chargées dans tableau tb(0 à " & i & ",0 à " & UBound(l) & ")"
End Sub

Bonjour,

une manière de charger un tableau à partir d'un fichier csv via VBA

Sub aargh()
    Dim tb()
    Open "test.csv" For Input As 1
    i = -1
    While Not EOF(1)
        Line Input #1, ligne
        i = i + 1
        l = Split(ligne, ",")
        If i = 0 Then ReDim tb(100000, UBound(l))
        For j = LBound(l) To UBound(l)
            tb(i, j) = l(j)
        Next j
    Wend
    Close 1
    MsgBox "données chargées dans tableau tb(0 à " & i & ",0 à " & UBound(l) & ")"
End Sub

Bonjour

merci pour ton aide. lors du chargement du fichier dans la table, excel plante et j'obtiens le message "Excel ne répond pas". le problème doit être dû au fait que mon fichier est super lourd car lorsque je fais un test avec un fichier plus petit ça marche sans problème.

Est ce que tu sais comment faire pour charger ce fichier dans ma table sans faire planter excel stp ?

Merci encore pour ta réponse

Bonjour,

j'ai fait un test avec 800000 données (80 000 lignes x 10 données), résultat immédiat chez moi.

un autre test avec 8000000 données (800000 lignes x 10 données), résultat moins de 2 secondes. le problème doit être ailleurs.

Y a-t-il d'autres macros dans le classeur de destination ?

Bonjour,

Ouvre ton fichier avec Récupérer et transformer (power Query).

Tu pourras effectuer un grand nombre d'opérations comme tu le ferais sous Excel (tris, filtres, etc...)

Ruban, Données, Récupérer et transformer, Nouvelle requête, A partir d'un fichier, A partir d'un fichier CSV.

Sélectionne ton fichier.

Tu fais Charger si tu ne veux pas apporter de modifications, Modifier dans le contraire.

Un lien à consulter :

https://support.office.com/fr-fr/article/aide-de-microsoft-power-query-pour-excel-2b433a85-ddfb-420b-9cda-fe0e60b82a94?ui=fr-FR&rs=fr-FR&ad=FR

Salut,

J'ai résolu mon problème. En fait mon csv était au formau Unix, en le convertissant au format Windows, le problème est résolu.

Merci encore pour vos réponses.

Rechercher des sujets similaires à "import fichier csv varaible tableau"