Lire et récupérer des données de fichiers CSV

Bonjour,

Voilà la situation :

J'ai un dossier sur mon ordinateur avec une cinquantaine de fichiers CSV, regroupant les informations systèmes d'ordinateurs (date d'install, numero de série , ....)...Voir le fichier joint pour un exemple.

Etant très paresseux, je voudrai automatiser le fait de récupérer certaines valeurs de ces fichiers pour les mettre dans un tableau sur un fichier Excel.

je voudrai tout simplement avoir par exemple un VBA qui lit tous les fichiers CSV présents dans le répertoire, et récupère chaque fois la date d'install et le numéro de série, pour en faire un tableau avec une ligne par fichier.

Pensez vous que cela est possible...je ne sais pas du tout comment aborder un fichier CSV, ni comment récupérer des infos spécifiques, ni encore comment passer à un autre fichier CSV, jusqu'à qu'ils aient tous été lu...

Merci beaucoup pour votre aide.

cordialement

Christophe

675ordi-de-toto.zip (349.00 Octets)

Bonjour,

fois la date d'install et le numéro de série

Date d'install ? tu veux dire de création du fichier ?

N° de série c'est quoi ?

Tu dis.

A+

Correction : Je n'avais pas télécharger ton fichier.

Tu veux la ligne complète ou uniquement la date et N°

Bonjour,

Merci pour la rapidité de la réponse...

Je voudrai récupérer que quelques infos sur chaque ligne, c'est pourquoi j'avais donnée cet exemple pour que l'on comprenne bien...

Le cheminement du VBA doit être le suivant :

  • Ouvrir premier fichier CSV,
  • Recupérer la première valeur qui m'interesse (valeur à droite de la date) et la coller en A1 dans mon tableau excel
recuperer la seconde valeur (valeur à droite de Numero de serie) et la coller en B1 dans Excel

je recommence pour 7 ou 8 valeurs différentes ...

- Ensuite fermer le premier fichier CSV et passer à un autre fichier CSV et recommencer la recuperation des valeurs en A2, B2, C2, ..

Quand j'ai passé tous les fichiers CSV...c'est fini et je suis très content !!!

Encore merci

salutations

Christophe

Re,

A tester. Juste cliquer sur le bouton.

Tu dis.

A+

3'659contenu-csv.zip (22.10 Ko)

Salut lermite,

Et .....chapeau bas l'artiste...merci pour le code...

  • très pratique pour le passage d'un fichier à un autre ..j'aurai jamais trouvé tout seul..
  • Bien pensé pour l'importation des données dans une feuille buffer...

Juste une petite question supplémentaire... j'en profite...

Comment puis je simplement récupérer une valeur précise et pas juste une transposition de toute la liste (la liste est en réalité beaucoup plus grande et beaucoup de données sont inutiles).

Comment récupérer juste la valeur de la date pour la ligne comportant le texte "date d'install" et la valeur du numéro série pour la ligne comportant le texte "NUMERO de série"..., sans savoir où sont exactement ces lignes dans la page buffer

Encore merci pour toute ton aide...

Salutations

Christophe

Re,

Dans la Sub CopierData(Fichier) tu repère les lignes de code

        End With
        .Range("L1:L6").Copy
        Sheets("Liste").Cells(Lig, 2).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    End With

tu les modifie comme ...

        End With
              Stop
    End With

Tu lance l'appli, ça va s’arrêter sur le stop.

Regarde dans la feuille Buffer les adresses des données qui t’intéresse.

Tu arrête la macro.

Supposons que c'est L1 et L4.. (je pense que c'est les bonnes )

tu refait le code comme

 End With
        Sheets("Liste").Cells(Lig, 2) = .[L1] 
        Sheets("Liste").Cells(Lig, 3) = .[L4]
    End With

Voila, voilou..

A+

Encore merci pour ta rapidité...

PAr contre ma dernière question n'est pas résolue...

Je ne sais pas quelle ligne je dois récupérer, car le nombre de ligne peut varier pour chaque fichier...

Ce que je connais c'est l'intitulé des lignes que je veux récupérer ("Date installation", "Numéro de série", ...)

Désolé de t'ennuyer encore

Merci pour tout

Christophe

Ca ne pose pas de problème pour autant que le libellé des ces lignes soit toujours rigoureusement le même.

A savoir "Date installation" et "Numéro de série"

Et qu'il existe dans tout les fichiers (ça c'est pas obligatoire)

Et les maju/minuscule n'aurait pas d'importance si ce devait être le cas. (tu dis)

Et dis directement dans quel colonne doivent être ces deux données, ce sera plus simple.

Disons que les libellés seront toujours en colonne D,, et les donnes a récupérer en colonne E.

Toujours la même orthographe..

Seul détail, peut être que parfois la ligne avec le libelle n'existera pas..dans ce cas on renverra une cellule vide

Merci une nouvelle fois

Christophe

tu n'a pas bien suivi..

A savoir

"Date installation" -> dans quel colonne

"Numéro de série" -> dans quel colonne

OK, désolé...

disons que la date d'install doit être recopie dans la colonne A et le numéro de série dans la colonne B

Merci

Re,

Dans le fichier csv que tu à communiquer ce n'est pas Date installation qui est mentionner mais installation time

C'est l'un ou l'autre ou alors faut dire .

j'ai pris en compte installation time

A+

281contenu-csv.zip (21.35 Ko)

Bonjour lermitte....et encore merci mille fois pour ton aide...

Excuse mon retard dans ma réponse, mais je n'étais pas disponible les derniers 15 jours...

Ton programme est super..à moi maintenant de le personnaliser pour répondre à mes attentes..

Ca marche très bien et je me permettrai peut être de faire encore appel à ton savoir si je bloque...

La fonction pour lire tous les fichiers CSV les uns après les autres est excellente...

Bonne journée

Salutations

Christophe

Bonjour,

Afin de parfaire l'outil,

comment faire pour récupérer le nom du fichier CSV sans le chemin dans 1 cellule de mon fichier EXCEL ?

Merci pour votre aide.

Salutations

Christophe

pipou a écrit :

comment faire pour récupérer le nom du fichier CSV sans le chemin dans 1 cellule de mon fichier EXCEL ?

Chercher dans tout le PC où ça se trouve ???

Si oui, ça risque de prendre beaucoup de temps.

A+

PS: Suis indisponible pour une huitaine si autre intervenant... A vous.

Bonjour,

Merci pour ta reponse.

Je voudrai simplement savoir si en même temps que l'on recupere les donnes d'un csv, il y aurait possibilite de remonter aussi le nom du fichier csv .

Bonnes vacances

A+

Christophe

Bonjour,

Je me permets de relancer le sujet

Afin de parfaire ma récupération de données, j'aimerai pouvoir récupérer le nom du fichier CSV qui est analysé...

Actuellement je récupère toutes les données que je veux à l'interieur d'un ficher CSV, et je voudrai aussi récupérer le nom du fichier..

Merci pour votre aide.

Bonne journée

Salutations

Christophe

Re Christophe,

Pas compliquer, le nom du fichier tu peu facilement le récupérer dans la fonction ExtractionCSV

Sub ExtractionCSV()
Dim Fichier
    Lig = 2
    Chemin = SelectionRep() & "\"
    Fichier = Dir(Chemin)
    Do While Fichier <> ""
'ICI TU A LE PATH ET NOM COMPLET DU FICHIER
        Lig = Lig + 1
        CopierData Fichier
        Fichier = Dir
    Loop
    Sheets(2).Cells.ClearContents
    Sheets(1).Select
End Sub

A+

Désolé du retard Lermitte....

Bon j'ai assez eu d'aide pour cette fois....et je me met enfin à fionaliser mon appli.

Encore merci pour tout..

A très bientôt

Salutations

Pipou

Rechercher des sujets similaires à "lire recuperer donnees fichiers csv"