Modif macro, si contient ".." copie dans onglet sans doublon

Bonjour,

J'ai une macro qui marche super bien cependant !!! Au fur et à mesure de son utilisation, je me rend compte qu'il faurdrait quelques changements que je n'arrive pas à effectuer....

Le grand principe de cette macro c'est que si la colonne K contient le statut ACTIF elle copie la ligne dans l'onglet REX et si on modifie cette ligne depuis l'onglet de départ elle met égamelement à jour l'onglet REX.

Seulement, la copie ce fait uniquement si on intervient en colonne B.. Alors que finalement les statuts peuvent être changés à la mains et du coup les lignes ne sont pas importées... Il faut venir en colonne B entrer dans la cellule de la ligne correspondante et la mettre à jour pour que la copie soit effectuée.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim derLn&, ligne&, Ln As Range, dt$
    If Target.Count > 1 Then Exit Sub
    derLn = Me.Range("I" & Rows.Count).End(xlUp).Row
    Application.ScreenUpdating = False
    If Target.Column = 2 Or Target.Column = 9 Then
        If Target.Row > 5 And Target.Row <= derLn Then
            If Me.Range("K" & Target.Row) = "ACTIF" Then
                dt = Me.Range("I" & Target.Row).Value
                Set Ln = Me.Range("A" & Target.Row & ":V" & Target.Row)
                With Worksheets("REX")
                    ligne = .Range("K" & .Rows.Count).End(xlUp).Row + 1
                    If ligne < 6 Then ligne = 6
                    If Application.CountIf(.Range("I6:I" & ligne), dt) = 0 Then _
                     .Range("A" & ligne).Resize(, 22).Value = Ln.Value
                End With
            End If
        End If
    ElseIf Not Intersect(Target, Me.Range("M6:U" & derLn)) Is Nothing Then
        If Me.Range("K" & Target.Row) = "ACTIF" Then
            dt = Me.Range("I" & Target.Row).Value
            Set Ln = Me.Range("A" & Target.Row & ":V" & Target.Row)
            With Worksheets("REX")
                ligne = .Range("I:I").Find(dt, lookat:=xlWhole).Row
                .Range("A" & ligne).Resize(, 22).Value = Ln.Value
            End With
        End If
    End If
    Application.ScreenUpdating = True
End Sub

Merci d'avance !!!

Bonjour,

il faut revoir tes test et définir ce qu'il doit ce passer lorsque une cellule de la colonne K change de valeur ...

Colonne K = 11 et donc la condition suivante n'est pas respectée :

    If Target.Column = 2 Or Target.Column = 9 Then

du coup tu passe au else :

  ElseIf Not Intersect(Target, Me.Range("M6:U" & derLn)) Is Nothing Then

la colonne K n'étant pas dans la plage M6:U...cette condition n'est elle aussi pas respectée ...

du coup sur changement d'état en colonne K ton code est inactif...

Bonjour pierre !!

Merci de ton aide !! Cependant là apparaît un nouveau problème .. Le statut ACTIF est rappatrié par formule. Et si au départ j'étais en statut Non Actif et que depuis ma source le statut passe en ACTIF et vient donc changer la valeur automatiquement, la ligne ne sera pas copié ..

Edit-----------------------------

Est-ce possible de comparer l'onglet Départ et Arrivé (mon onglet REX) et de combler les manques avec une fonction en Worksheet_Activate ?

Rechercher des sujets similaires à "modif macro contient copie onglet doublon"