Copier/coller selon critère dans colonne

Bonjour,

Je possède deux fichiers: un fichier source .txt et un fichier de destination. Mon code actuel permet d'ouvrir le fichier source .txt et de copier coller le contenu entier dans mon fichier de destination.

Cependant, j'aimerais seulement importer les lignes qui possède le critère "xx" en colonne L du fichier source et pas toutes les lignes.

Voici mon code actuel:

Sub OpenImportFile()
    Dim sFileName As String, DestFileName As String
    Dim sBase As String, test As String
    Dim sSuffix As String
    Dim sExt As String
    Dim shA As Worksheet
    Dim i As Integer
    Dim DEST As Range
    Dim RowNb As Long, ColNb As Long
Dim dtDébut As Double, dtFin As Double, n  As Integer
Dim dt As Double

    DestFileName = ThisWorkbook.Name

  Set shA = ThisWorkbook.Worksheets("Data")
  shA.Cells.ClearContents

dtDébut = Worksheets("Paramètres").Range("B9").Value
dtFin = Worksheets("Paramètres").Range("B10").Value
n = dtFin - dtDébut
  For i = 0 To n - 1
    dt = Format(dtDébut + i, "yyyymmdd")
    sBase = "F:\Fastnet\Fastnet2020\"
    sExt = "FastnetI.fic"
    sFileName = sBase & dt & sExt

    test = Dir(sFileName)
    If test <> "" Then

        Workbooks.OpenText sFileName, DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=False, Local:=True, DecimalSeparator:="."
'        Set DEST = IIf(shA.Range("A1").Value = "", shA.Range("A1"), shA.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0))

        RowNb = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
        ColNb = Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column

        If i = 0 Then
            ActiveWorkbook.Worksheets(1).Range(Cells(1, 1), Cells(RowNb, ColNb)).Copy
        Else
            ActiveWorkbook.Worksheets(1).Range(Cells(2, 1), Cells(RowNb, ColNb)).Copy
        End If
        Workbooks(DestFileName).Worksheets("Data").Activate
        If i = 0 Then
            Cells(Application.Rows.Count, "A").End(xlUp).Select
        Else
            Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0).Select
        End If
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Workbooks(dt & sExt).Close savechanges = False
              End If
   Next

End Sub
        

Bonjour,

Le fichier est importé en bloc, dans sa totalité, il n'est pas possible de préciser des critères au moment de l'import.

Le traitement doit se faire en 2 étape :

> import des données texte dans Excel (ce qui est fait)

> traitement dans Excel sur les données importées, pour ne retenir que les lignes voulues (par exemple en appliquant un filtre sur la colonne L). Cette opération est automatisable en VBA. Si besoin, utiliser l'enregistreur automatique de macro pour récupérer et adapter le code.

Bouben

Rechercher des sujets similaires à "copier coller critere colonne"