Copie si non présent

Bonjour et merci d'avance pour votre aide.

Sur le fichier joint, j'ai une feuille contenant les heures travaillées par salarié (extraction automatique via un logiciel de gestion) et sur la deuxième feuille la liste des salariés de l'entreprise.

Comment rajouter dans la feuille 1, le nom et le code du salarié de la feuille 2 quand ces derniers ne sont pas présent.

Cela de façon automatique

Merci beaucoup

Michel

16analyse.xlsx (16.35 Ko)

Bonsoir micheldz

Vois ceci :

Option Explicit
Sub absents()
Dim a, i As Long, x As Range, dico As Object
    Set dico = CreateObject("Scripting.Dictionary")
    dico.comparemode = 1
    With Sheets("Heures Salariés").Range("a1")
        a = .CurrentRegion.Value
        For i = 2 To UBound(a, 1)
            dico(a(i, 1)) = Empty
        Next
        With Sheets("Salariés").Range("a1").CurrentRegion
            a = .Value
            For i = 1 To UBound(a, 1)
                If Not dico.exists(a(i, 1)) Then
                    If x Is Nothing Then
                        Set x = .Cells(i, 1).Resize(, 2)
                    Else
                        Set x = Union(x, .Cells(i, 1).Resize(, 2))
                    End If
                End If
            Next
        End With
        If Not x Is Nothing Then
            x.Copy .End(xlDown)(2)
            Set x = Nothing
        Else
            MsgBox "Aucun absent"
        End If
    End With
End Sub

klin89

Rechercher des sujets similaires à "copie present"