Copier les lignes filtres sur un autre onglet

Bonjour ,

Auriez-vous une idée, si cela est réalisable de copier - coller en valeur les lignes filtrées ( macro 1) sur l'onglet LLS vers l'onglet Suivi , tout en évitant les doublons via la colonne Vérif ( qui est une concaténation des champs = clé unique ) et comprenant une ligne d'entete ?

Merci d'avance

Bonjour Fleurmi,

A tester, si le code en N est un doublon, la ligne n'est pas prise en compte

Sub Transfert_LLS_Suivi()
  Dim Dlig As Long, Lig As Long, nLig As Long
  Dim ShtS As Worksheet, ShtD As Worksheet
  Dim Dico As Object, sKey As String
  ' Définir les feuilles
  Set ShtS = ThisWorkbook.Sheets("LLS")
  Set ShtD = ThisWorkbook.Sheets("SUIVI")
  ' Dernière ligne remplie de la feuille source
  Dlig = ShtS.Range("A" & Rows.Count).End(xlUp).Row
  ' Nouvelles ligne de la feuille de destination
  nLig = ShtD.Range("I" & Rows.Count).End(xlUp).Offset(1, 0).Row
  ' Définir le dictionnaire pour les doublons et le remplir
  Set Dico = CreateObject("Scripting.Dictionary")
  With ShtD
    For Lig = 2 To nLig - 1
    sKey = .Range("I" & Lig).Value
    Dico(sKey) = ""
    Next Lig
  End With
  With ShtS
    For Lig = 2 To Dlig
      If .Rows(Lig).Hidden = False Then
      sKey = .Range("N" & Lig).Value
        ' Si clé n'existe pas
        If Not Dico.Exists(sKey) Then
          ' L'ajouter
          Dico.Add sKey, ""
          ' Copier les données
          ShtD.Range("B" & nLig).Value = ShtS.Range("A" & Lig).Value
          ' Etc...

          ' Incrémenter les nouvelle lignes
          nLig = nLig + 1
        End If
      End If
    Next Lig
  End With
  Set ShtD = Nothing: Set ShtS = Nothing
End Sub

A+

Bonjour BrunoM45,

Merci Beaucoup pour ton code VBA , C'est impressionnant à chaque fois la puissance de VBA comparer à des formule Excel ....

Ton code Marche Parfaitement , mais il ne me copie que la colonne REF ATA 100 , est ce qu'il est possible de l'avoir jusqua la colonne VERIF ?

Je pense quand essayant de lire de code :) , que ces cette partie qui interagie avec le copier coller

image image

merci encore pour ton aide

Re BrunoM45,

J'ai réussie :)

' Copier les données
          ShtD.Range("B" & nLig).Value = ShtS.Range("A" & Lig).Value
          ShtD.Range("C" & nLig).Value = ShtS.Range("B" & Lig).Value

etc...

merci encore

Bonne soirée a vous

Re,

Bien joué tu as trouvé et compris

Excel est tout aussi puissant avec des formules, des TCD ou Power Query, mais pour moi le VBA est souvent plus simple

@+

Rechercher des sujets similaires à "copier lignes filtres onglet"