Récupérer données sur fichier CSV lourd
Bonjour à tous,
Je souhaite récupérer des données d'open data de l'Assurance Maladie (Open PHMEV) disponible sur ce lien (fichier à télécharger en milieu de page, cf copie d'écran).
Le problème (pour un utilisateur novice comme moi) est que ce sont des fichiers CSV lourds qui doivent être importés pour être utilisés dans Access ou Power Query.
J'essaie par tous les moyens de retrouver la bonne manière pour importer ces données mais le type de données semble incorrect et je ne sais pas comment corriger cela.
Je me débrouille, peut-être pas de manière académique mais j'obtiens mon résultat, à importer des fichiers CSV sur Power Query mais là je ne sais pas si c'est la taille du fichier ou les paramètres des types de données qui m'en empêche.
Pourriez-vous s'il vous plaît m'aiguiller sur la manière d'importer ce type de données ? Je n'arrive pas à joindre le fournisseur de ces données pour le faire.
Merci.
Steve
Bonjour à tous !
L'intégration du fichier OPEN_PHMEV_2024.CSV, découlant du fichier Zip téléchargé, dans Power Query ne présente à priori pas de difficultés.
Par contre, les enregistrements (3 504 612) oblige l'usage de filtre avant le déversement dans Excel.
Merci JFL.
Je retrouve en effet le même nombre de lignes.
Ce n'est donc pas un mésuage de l'outil de ma part mais un problème de données puisque des produits obligatoirement dans le périmètre n'y figurent pas quand je fais mon filtre.
Merci.
Steve
Bonjour à tous de nouveau !
Ce n'est donc pas un mésuage de l'outil de ma part mais un problème de données puisque des produits obligatoirement dans le périmètre n'y figurent pas quand je fais mon filtre.
Votre propos est peu intelligible.
S'agit-t-il de données manquantes dans la source (il serait étonnant que cet organisme produise des données peu fiables....) ou d'un souci dans l'élaboration de votre filtre ?
Bonjour tout le monde,
Avez-vous essayer de décomposer ce fichier sur le site de SPLIT CSV ? (gratuit en-deça de 4 Go).
Bon, ça n'a pas l'air de vous inspirer. Ce n'est pas plus mal, car on peut le faire soi-même.
Quelques remarques :
- ces 3.504.612 lignes n'entrent pas sur une feuille, car elles sont limitées à 1.048.576. Donc il va falloir saucissonner en 4, donc découper le fichier en 4 blocs.
- la macro ci-dessous le fait ; le dossier c:\Temp2 a été créé pour cela. Copiez-y l'original et renommez-le phmev.csv.
- cette macro va créer les fichiers phmev-1.csv, phmev-2.csv,phmev-3.csv et phmev-4.csv.
- il vous suffira de convertir ces 4 fichiers au format xlsx, puis de les réunir dans les 4 feuilles d'un même fichier. Le tout fera quand même 491 Mo.
- le code peut être optimisé, mais c'est sans intérêt.
Sub Macro1()
Dim i As Long, ligne As String
' Fichier 1/4
Open "C:\Temp2\phmev-1.csv" For Output As #1
Open "C:\Temp\phmev.csv" For Input As #2
For i = 1 To 1048576
Line Input #2, ligne
Print #1, ligne
Next i
Close #2
Close #1
MsgBox "Fichier [phmev-1.csv] sauvegardé."
' Fichier 2/4
Open "C:\Temp2\phmev-2.csv" For Output As #1
Open "C:\Temp\phmev.csv" For Input As #2
For i = 1 To 1048576
Line Input #2, ligne
Next i
For i = 1048577 To 2097152
Line Input #2, ligne
Print #1, ligne
Next i
Close #2
Close #1
MsgBox "Fichier [phmev-2.csv] sauvegardé."
' Fichier 3/4
Open "C:\Temp2\phmev-3.csv" For Output As #1
Open "C:\Temp\phmev.csv" For Input As #2
For i = 1 To 2097152
Line Input #2, ligne
Next i
For i = 2097153 To 3145728
Line Input #2, ligne
Print #1, ligne
Next i
Close #2
Close #1
MsgBox "Fichier [phmev-3.csv] sauvegardé."
' Fichier 4/4
Open "C:\Temp2\phmev-4.csv" For Output As #1
Open "C:\Temp\phmev.csv" For Input As #2
For i = 1 To 3145728
Line Input #2, ligne
Next i
For i = 3145729 To 3504612
Line Input #2, ligne
Print #1, ligne
Next i
Close #2
Close #1
MsgBox "Fichier [phmev-4.csv] sauvegardé."
End SubLe fichier généré fait 492 Mo (2' de chargement), mais toutes les données y sont. Je crois que j'ai perdu mon temps en faisant cette moulinette.
Bonjour Optimix,
Merci pour la proposition.
J'avais manuellement coupé le fichier en 4, sûrement plus rapidement que la création de la macro en effet, et j'ai bien constaté que j'avais extrait toutes les données disponibles (avec confirmation d'un manque de données).
Merci pour le tuyau SPLIT CSV, très utile pour les prochaines fois, j'essaierai.
Steve