[VBA] - Importer un document .csv dans une variable tableau sans l'ouvrir

Bonsoir,

J'ai trouvé des discussions présentant la méthode pour importer des données depuis un document .csv dans une variable tableau, mais il est toujours question d'ouvrir le document.

Savez-vous si la même opération est réalisable sans ouvrir le document Excel ? Pour une fois, je pose la question avant d'essayer. Je regarderai demain dans la journée si j'arrive à mixer deux codes pour obtenir le résultat souhaité.

Si je cherche à ne pas ouvrir le csv, c'est parce que cette opération peut prendre une minute et que je recherche la manière la plus rapidement d'obtenir mes données (180 000 lignes x 87 colonnes).

Je vous remercie de votre attention,

Bonne soirée !

Bonjour,

CSV dans un tableau VBA (tableau de lignes comme avec LO) avec un Stream :

Bonjour,

Merci du partage.

Pour le moment, je vois que la macro réalise beaucoup d'opérations, avec diverses fonctions (je n'utilise pas de fonction, ne sachant pas encore comment les faire fonctionner) qui réalisent des taches assez obscures pour moi !

Pour le moment, le tableau csv obtenu ne contient que la première colonne.
Je vais essayer de travailler avec ce fichier, avec une certaine réserve sur ce que je vais parvenir à obtenir haha.

Merci !

A plus tard

A priori, j'arrive à le faire fonctionner, je pense pouvoir utiliser la variable tableau pour la suite du projet.

Mais avant tout, il faut que ça fonctionne dans mon document de travail.

Je clôturerai la discussion quand tout semblera fonctionner.

Par contre, j'avoue que je ne comprend pas tout... Il y a des variables pour lesquelles on attribue jamais de valeur, que l'on utilise pour choisir une tache à réaliser. (exemple : "sep")

Mais ça marche..

A plus tard !

Par contre, j'avoue que je ne comprend pas tout... Il y a des variables pour lesquelles on attribue jamais de valeur, que l'on utilise pour choisir une tache à réaliser. (exemple : "sep")

Désolé, c'est un de mes codes que j'ai simplifié à l'arrache et j'ai oublié de supprimer les variables inutilisées :
Dans la fonction Tableau_csv_UTF8 ne conserver que :

Const sepV$ = ","                 'séparateur de valeurs
'
Dim fUtf8 As ADODB.Stream         'flux de données Utf8
Dim txt As String                 'texte
Dim tL As Variant                 'tableau des lignes

Selon le type de csv il faut choisir sepV égal à "," ou à ";"

Bonsoir,

J'ai intégré assez bêtement votre code, sans y apporter de changement, car il reste plutôt complexe ! Les fonctions qui se lancent les unes après les autres, les "constantes", etc. Tout ça m'est relativement inconnu.

En tout cas, ça fonctionne très bien, j'ai donc pu récupérer les infos dans une variable tableau que j'utilise pour mettre à jour la base de données en 1 seule fois.

Ma macro initiale qui s'exécutait en une quinzaine de seconde le fait en 10 environ. C'est un maigre gain, mais ça me permet également de reprendre de grands pans de codes.

Merci beaucoup pour le partage !
Je pense que je peux clore cette discussion car vous avez apporté une solution à mon problème

Bonne soirée !

Rechercher des sujets similaires à "vba importer document csv variable tableau ouvrir"