Fichier (*.csv) > 1Go Select lignes et extraire vers excel

Fermé
ExcelGuru1 Messages postés 15 Date d'inscription lundi 26 juin 2017 Statut Membre Dernière intervention 6 juillet 2017 - 5 juil. 2017 à 20:53
yg_be Messages postés 23346 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 novembre 2024 - 6 juil. 2017 à 09:41
Comme indiqué dans le titre, J'aimerais sélectionner des lignes spécifique d'un fichier CSV de plus de 5 Go. Et les extraire dans un fichier excel.

Voici le code VBA que je désespère a faire marcher pour remplir cette tache...

Sub GetMyCSVData()
Dim xlcon As ADODB.Connection
Dim xlrs As ADODB.Recordset

Set xlcon = New ADODB.Connection
Set xlrs = New ADODB.Recordset

Dim currentDataFilePath As String
Dim currentDataFileName As String
Dim nextRow As Integer
Dim ColonneName As String
Dim ValeurCritere As String
Dim ValeurCritere2 As String

currentDataFilePath = "C:\Users\pc\Desktop\UpWork\Aaron\New Database - Splitted Files\"
currentDataFileName = "npidata_20050523-20170611-000"

xlcon.Provider = "Microsoft.Jet.OLEDB.4.0"
xlcon.ConnectionString = "Data Source=" & currentDataFilePath & ";" & "Extended Properties=""text;HDR=Yes;FMT=Delimited;"""

xlcon.Open

ColonneName = "'Healthcare Provider Taxonomy Code_1'"
ValeurCritere = "333600000X"
ValeurCritere2 = "444600000Y"

xlrs.Open "SELECT FirstName, Surname, Age FROM [" & currentDataFileName & ".csv] WHERE " & ColonneName & " = " & ValeurCritere, xlco
xlrs.MoveFirst
nextRow = Worksheets("Sheet1").UsedRange.Rows.Count + 1
Worksheets("Sheet1").Cells(nextRow, 1).CopyFromRecordset xlrs

xlrs.Close
xlcon.Close

Set xlrs = Nothing
Set xlcon = Nothing
End Sub


Le problème est que je ne maîtrise pas du tout les instruction SQL. (From, Where ...)
Pourriez-vous m'aider svp à extraire toutes les lignes dont les champs "Healthcare Provider Taxonomy Code_1" OU "Healthcare Provider Taxonomy Code_2" SONT EGALE A 333600000X OU 444600000Y.

Je vous remercie d'avance!
A voir également:

1 réponse

yg_be Messages postés 23346 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 novembre 2024 Ambassadeur 1 552
5 juil. 2017 à 23:42
bonsoir, as-tu un message d'erreur ou un soucis particulier?
0
ExcelGuru1 Messages postés 15 Date d'inscription lundi 26 juin 2017 Statut Membre Dernière intervention 6 juillet 2017 1
Modifié le 5 juil. 2017 à 23:49
Bonjour yg_be, merci pour ta reponse.
Effectivement, j'ai un message d'erreur qui dit : "Les arguments sont de type incorrecte, en dehors des limite autorisées ou en conflit les uns avec les autres"

La ligne du code concerné est la suivante :
xlrs.Open "SELECT FirstName, Surname, Age FROM [" & currentDataFileName & ".csv] WHERE " & ColonneName & " = " & ValeurCritere, xlco

Merci d'avance pour tout !
0
yg_be Messages postés 23346 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 novembre 2024 1 552 > ExcelGuru1 Messages postés 15 Date d'inscription lundi 26 juin 2017 Statut Membre Dernière intervention 6 juillet 2017
6 juil. 2017 à 08:37
je suggère d'ajouter "option explicit" au début de ton code.
0
ExcelGuru1 Messages postés 15 Date d'inscription lundi 26 juin 2017 Statut Membre Dernière intervention 6 juillet 2017 1
6 juil. 2017 à 08:55
Merci bcp yg_be !

Maintenant je n'ai plus la meme erreur, j'ai une autre :

Erreur d'execution '-2147217900 (80040e14)':
Erreur de syntaxe (opérateur absent) dans l'expression 'Healthcare Provider Taxonomy Code_1 = 333600000X'


Merci d'avance pour votre aide !!
0
yg_be Messages postés 23346 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 novembre 2024 1 552 > ExcelGuru1 Messages postés 15 Date d'inscription lundi 26 juin 2017 Statut Membre Dernière intervention 6 juillet 2017
6 juil. 2017 à 09:41
suggestion, au lieu de:
xlrs.Open "SELECT FirstName, Surname, Age FROM [" & currentDataFileName & ".csv] WHERE " & ColonneName & " = " & ValeurCritere, xlco

essaie:
dim sql as string
sql=" SELECT FirstName, Surname, Age " _
& " FROM [" & currentDataFileName & ".csv] " _
& " WHERE [" & ColonneName & "] = '" & ValeurCritere & "' "
xlrs.Open sql , xlco

si tu as un soucis, examine ou partage la valeur de la chaîne sql.
0