Importer une série de données depuis un csv

Bonjour,

Je cherche à importer une série de données depuis un fichier .CSV délimité par des virgules.

Voici les différentes étapes :

  • sélectionner un fichier .csv délimité par des virgules

  • a partir de la ligne « Hist.SCADA1.GRADRMEA1.F_CV,« Gradient composition measured Line 1 »,100,0 » (ligne 222 sur le fichier csv d’exemple) : rechercher le dernier 0 avant la première valeur positive (ligne 225)

  • copier à partir de ce 0 inclus, les 210 valeurs suivantes (211 valeurs en tout) donc dans mon fichier exemple cela concerne les lignes 225 à 435

  • les coller dans le tableau « tb_mesures_step » (situé ici : =‹ Step - Data ›!$B$2:$B$212)

Merci d’avance pour votre aide!
Ci joint le fichier de calcul et le fichier csv pour exemple.
fichiers-de-calcul.xlsm (479,0 Ko)
step-exemple.csv (46,5 Ko)

Et voici ce que j’ai pu faire, mais ça ne marche pas…

Sub ImportData()
    Dim fileToOpen As Variant
    Dim fileFilterPattern As String
    Dim wbTextImport As Workbook
    Dim tbData()
    Dim startRow As Long

    fileFilterPattern = "Text Files (*.txt; *.csv),*.txt;*.csv"
    fileToOpen = Application.GetOpenFilename(fileFilterPattern)
    If fileToOpen = False Then
        MsgBox "No file selected."
        Exit Sub
    End If

    Workbooks.OpenText _
        fileName:=fileToOpen, _
        StartRow:=2, _
        DataType:=xlDelimited, _
        Other:=True, _
    semicolon:=True
    Set wbTextImport = ActiveWorkbook

    ' Trouve la ligne de départ pour les données
    With wbTextImport.Sheets(1)
        startRow = .Cells.Find("Hist.SCADA1.GRADRMEA1.F_CV,""Gradient composition measured Line 1"",100,0").Row + 3
    End With

    ' Charge les données en mémoire
    tbData = wbTextImport.Sheets(1).Range("B" & startRow & ":B" & startRow + 210).Value2

    ' Ferme le fichier d'import
    wbTextImport.Close False

    ' Écrit les données dans le tableau "tb_mesures_step"
    With ThisWorkbook.Sheets("Step - Data")
        .Range("B2:B212").Value = tbData
    End With

    MsgBox "Data import successful."
End Sub

Bonjour

Ton fichier avec ta macro « Sub ImportData() » intégrée fonctionnelle
Testes et dis moi

fichiers-de-calcul.xlsm (483,3 Ko)

Merci infiniment, c’est fonctionnel ! J’ai pu tester avec d’autres fichiers csv, RAS.

Très bon we à vous

Guillaume

Merci pour ce retour
A la prochaine peut être
Au plaisir

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.