Copie conditionnelle si valeur non présente

Bonjour le forum,

Besoin d'aide pour un code.

voici mon code, qui fonctionne très bien mais je veux rajouter une condition que je n'arrive pas à traduire à savoir :

copier la valeur Feuil2.Range("A") que si elle n’apparaît pas déjà dans la liste Feuil4.Range("A")

Comme ça quand je met à jour ma feuille 2 et que de nouveaux salariés sont concernés par le filtre (AV = oui), ils viennent s'ajouter en fin de colonne A de la feuille 4.

Sub MAJ_Salariés_Abs()

Call ProtVBA

'copie de la liste des salariés seulement concerné par la gestion des Abs
 Dim i&, ln&
    'Feuil4.Range("A13:A9999").ClearContents 'supprime les données préexistantes
    For i = 13 To Feuil2.Range("A12").End(xlDown).Row
        On Error Resume Next
        If Feuil2.Range("AV" & i) = "OUI" Then
            If Err.Number = 0 Then
                ln = 13
                Do While Feuil4.Range("A" & ln) <> ""
                    ln = ln + 3
                Loop
                Feuil4.Range("A" & ln) = Feuil2.Range("A" & i)
            End If
        End If
    Next i

MsgBox "Mise à jour terminée"

End Sub

Merci pour votre aide

@+

Bonjour,

Un essai, non testé:

 For i = 13 To Feuil2.Range("A12").End(xlDown).Row
        If Feuil2.Range("AV" & i) = "OUI" Then
            DL  =Feuil4.Range("A" & Rows.Count).End(xlUp).Row
            If Application.WorksheetFunction.CountIf(Feuil4.Range("A13:A" & DL),Feuil2.Range("A" & i)) = 0 Then 
                ln = 13
                Do While Feuil4.Range("A" & ln) <> ""
                    ln = ln + 3
                Loop
                Feuil4.Range("A" & ln) = Feuil2.Range("A" & i)
            End If
        End If
    Next i

Pas compris comment fonctionne la détermination de la ligne d'écriture en Feuil4

A+

Merci infiniment Algoplus, c'est exactement ce que je voulais faire.

je vais pouvoir finaliser mon tableau.

Rechercher des sujets similaires à "copie conditionnelle valeur presente"