Importer des lignes de données .csv en fonction d'une colonne

Cher Forum bonjour,

Je me permets de venir vers vous car je reste bloqué sur une étape.

Je souhaite importer un fichier csv vers excel, mais je ne souhaite importer que les lignes dont la colonne B contient A2 et B2.

Pour l'instant j'ai ce code qui fonctionne mais importe l'ensemble :

Sub Copie()

   'ouvrir le fichier source
Application.DisplayAlerts = False
mavariable = Range("B1").Value
Workbooks.OpenText ("S:\Forum\RM\Statistiques par segmentation\HB0L9_TrackingList_" & mavariable & ".csv"), Origin:=xlWindows, _
    StartRow:=1, Local:=True, DataType:=xlDelimited, Semicolon:=True
Application.DisplayAlerts = True
Sheets("HB0L9_TrackingList_" & mavariable & "").Select

'copier les donnés dans destination
Workbooks("HB0L9_TrackingList_" & mavariable & "").Sheets("HB0L9_TrackingList_" & mavariable & "").Range("A1:S6000").Copy Workbooks("Hotel Dashboard 2020.xlsm").Worksheets("Dispo").Range("C4")

'Fermer fichier source
Application.DisplayAlerts = False
Workbooks("HB0L9_TrackingList_" & mavariable & "").Close SaveChanges:=False
Application.DisplayAlerts = True

 End Sub

Je vous remercie de votre aide et vous souhaite une belle journée.

Cordialement,

Jessy

Bonjour,

A tester !...

Cdlt.

Public Sub CopyData()
Dim wb As Workbook, ws As Worksheet
Dim myValue As String, sFile As String
    Set ws = ActiveSheet
    myValue = ws.Cells(2).Value
    sFile = "S:\Forum\RM\Statistiques par segmentation\HB0L9_TrackingList_" & myValue & ".csv"
    Set wb = Workbooks.OpenText(Filename:=sFile, Origin:=xlWindows, StartRow:=1, Local:=True, DataType:=xlDelimited, Semicolon:=True)
    With wb.Worksheets(1).Cells(1).CurrentRegion
        .AutoFilter field:=2, Criteria1:="A", Operator:=xlAnd, Criteria2:="B"
        .Copy Destination:=ws.Cells(4, 3)
    End With
    wb.Close SaveChanges:=False
End Sub

Merci pour ce retour,

J'ai une erreur "fonction ou variable attendue" sur Workbook.openText

Cordialement,

Re,

Essaie ainsi, en supprimant peut-être l'inutile :

[code]Set wb = Workbooks.OpenText(Filename:=sFile)

Cdlt.

La mise en forme n'est plus la même.

Je me suis aidé de l'enregistreur de macro et cela fonctionne (avec un filtre) :

 Workbooks("HB0L9_TrackingList_" & mavariable & "").Activate
 Selection.AutoFilter
    ActiveSheet.Range("$A$1:$S$1633").AutoFilter Field:=2, Criteria1:="=A2", _
        Operator:=xlOr, Criteria2:="=B2"

Il y a surement mieux, j'en conviens.

Merci beaucoup Jean-Éric !

Rechercher des sujets similaires à "importer lignes donnees csv fonction colonne"