[Résolu] [VBA] Recherche de fichiers .csv puis lecture sans ouverture

cissou69

XLDnaute Junior
Bonjour,

En cherchant à gauche à droite et en adaptant le code que j'ai pu trouvé, j'ai réussi en VBA à indiquer un dossier parent où chercher les fichiers .csv dans les différents sous-dossier mais là je bloque sur la lecture du dit .csv sans l'ouvrir. Actuellement le code ouvre le fichier et fait le travail.
Mais vu le nombre de fichiers à traiter (>100) la tache est longue, très longue.

En fait j'aimerais vérifier que la ligne 5 contenant le Sample Name contient bien la référence cible.
Puis extraire directement les données si cette condition est vérifié.

Un exemple de fichier .csv est disponible dans l'archive zip
Les données sont ensuite importées dans l'onglet Data_Brut

Merci pour votre aide,

Cissou
 

Pièces jointes

  • test_light_tbp.xlsm
    35.5 KB · Affichages: 79
  • Simdis.zip
    893 bytes · Affichages: 48
Dernière édition:

cissou69

XLDnaute Junior
Re : [VBA] Recherche de fichiers .csv puis lecture sans ouverture

Re,

Je vais reformuler pour éclairer ma demande.
J'ai réussi à coder la recherche du fichier.csv dans les différent dossier et sous-dossier.
De même, je comprends comment créer une connexion ADO au fichier .csv.
Mais je bloque sur la récupération de données dans le csv vu que celui-ci n'est pas organisé en colonne mais en ligne...

Merci pour votre aide,

Code:
Dim Cn As ADODB.Connection
    Dim Fichier As String
    Dim NomFeuille As String, texte_SQL As String
    Dim Rst As ADODB.Recordset
       
    On Error GoTo ADO_ERROR
    Dossier = p_oFld.Path & "\" 'penser à terminer par un \
    FichierCSV = Sheets("Input").Cells(12, 2) 'penser à l'extension .csv
 
    Set Cn = New ADODB.Connection
    Cn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Dossier & ";Extended Properties=""text;HDR=Yes;FMT=Delimited(;)"";Persist Security Info=False"
    Cn.ConnectionTimeout = 40
    Cn.Open
    '-----------------
    'Requête
    texte_SQL = "SELECT * FROM " & FichierCSV '& " where "
 
    Set Rst = New ADODB.Recordset
    Rst.ActiveConnection = Cn
    Rst.Source = texte_SQL
    Rst.Open
 
    i = 2
    If Rst.EOF <> True Then
        While Rst.EOF = False
            'Code à placer pour travailler le csv            
            'Variable() = Rst.Fields(0)
            i = i + 1
            Rst.MoveNext
        Wend
    End If
    Rst.Close
    Set Rst = Nothing
    Cn.Close
    Set Cn = Nothing
    
ADO_ERROR:
    If err <> 0 Then
        Debug.Assert (err = 0)
        MsgBox (err.Description)
        Resume Next
    End If
 

cissou69

XLDnaute Junior
Re : [VBA] Recherche de fichiers .csv puis lecture sans ouverture

Re,

ça y est j'ai compris ...
en fait le zéro de Rst.Fields(0) correspond à la colonne du fichier .csv
Donc si je veux vérifier la valeur dans la deuxième colonne, ben je mets 1 !!
 

Discussions similaires

Statistiques des forums

Discussions
312 482
Messages
2 088 771
Membres
103 957
dernier inscrit
epdef