Vba - copier lignes spécifiques

Bonjour,
jaurai besoin de copier seulement quelques lignes d'un tableau excel pour les coller dans une autre feuille.
J'ai ce code :
Dim lig     As Long
  Dim col     As String
  Dim NbrLig  As Long
  Dim numlig  As Long
  
  Sheets("feuil2").Activate ' feuille de destination
  
  col = "A"                 ' colonne de la donnée non vide à tester
  numlig = 0
  With Sheets("feuil1")     ' feuille source
  NbrLig = .Cells(65536, col).End(xlUp).Row
  For lig = 1 To NbrLig
    If .Cells(lig, col).Value = "Non valide" Then
      .Cells(lig, col).EntireRow.Copy
      numlig = numlig + 1
      Cells(numlig, 1).Select
      ActiveSheet.Paste
    End If
  Next
  End With


mais ce code copie toute la ligne avec la fonction "EntireRow" quand sur la même ligne il trouve la valeur "non valide". Or, je voudrai que quand il trouve la valeur "non valide", il copit seulement la colonne A, B,E de la même ligne.
Exemple, "non valide" s'inscrit dans la ligne 30 de "Feuil1", ma macro copie seulement A30, B30, E30 dans la feuille "Feuil2" quelqu'un peut m'aider?
merci

4 réponses

  1. C un forum ou le but est de ne pas répondre ?
    0
    1. Bonjour,

      C'est un forum où les helpeurs sont des bénévoles, et aussi étrange que cela puisse paraître, ont également une vie autre que CCM.

      .Cells(lig, col).Copy


      ;o)
      0
      1. Modérateur
        Bonjour,
        Un "ponte" du forum te répondrait : "t'affole pô ça va viendre!!!"...
        ta variable col ne sert à rien, je l'ai virée; remplacée en fait par sa valeur (col A = 1 col B = 2 etc) en gras ci-dessous...
        J'ai modifié ta macro comme suit :
        Dim lig As Long
        Dim NbrLig As Long
        Dim numlig As Long
        Sheets("feuil2").Activate ' feuille de destination
        numlig = 1
        With Sheets("feuil1") ' feuille source
        NbrLig = .Cells(65536, 1).End(xlUp).Row
        For lig = 1 To NbrLig
        If .Cells(lig, 1).Value = "Non valide" Then
        .Cells(lig, 1).Copy Cells(numlig, 1) 'copie colle cell feuil1 col A en feuil2 col A
        .Cells(lig, 2).Copy Cells(numlig, 2) 'copie colle cell feuil1 col B en feuil2 col B
        .Cells(lig, 5).Copy Cells(numlig, 3) 'copie colle cell feuil1 col E en feuil2 col C
        numlig = numlig + 1
        End If
        Next
        End With
        Bon courage et ne t'impatiente pas trop...
        0