Código VBA que no actualiza range al buscar coincidencia

'Tengo un codigo que me busca dentro de la hoja "Suivi composants" en la columna A coincidencias con valores presentes en la hoja "Suivi SFY-DC" .
El código copia en la hoja "Suivi composants" en una nuva línea el valor cuando no lo encuentra y también copia otros valores.
Definí el código para que se ejecute cada vez que actualizo mi hoja Suivi composants, y funciona, pero al volver a cambiar de hoja y revenir en la misma me sigue copiando nuevamente aunque estén ya presentes, por lo que creo que el problema es que el rango no se esta actualizando con las nuevas filas y no se como hacer para que se actualice.

Código :

Private Sub Worksheet_Activate()
Dim i As Integer, j As Integer
Dim OF_suiviSFY As String
Dim coincidence As Variant, numerocompo As Variant, Rango As range, Rango_liste As range
Dim description_cherchee As String
Dim dernierOF_suiviSFY As Integer: dernierOF_suiviSFY = Sheets("Suivi SFY-DC").Cells(Rows.Count, "D").End(xlUp).Row
Dim dernierOF_compo As Integer: dernierOF_compo = Sheets("Suivi Composants").Cells(Rows.Count, "A").End(xlUp).Row
Set Rango = Sheets("Suivi Composants").range("A2 ", "A" & dernierOF_compo)
Set Rango_liste = Sheets("ComposantsSFY").range("A3", "E100")
For i = 5 To dernierOF_suiviSFY
    coincidence = Application.VLookup(OF_suiviSFY, Rango, 1, False) 
    If IsError(coincidence) Then 
        description_cherchee = Sheets("Suivi SFY-DC").Cells(i, 6)
        OF_suiviSFY = Sheets("Suivi SFY-DC").Cells(i, 4)
        numerocompo = Application.VLookup(description_cherchee, Rango_liste, 5, False)
        If IsError(numerocompo) Then
            ActiveSheet.Cells(2, 1).Select 'inserer 2 nouvelles lignes
            Selection.EntireRow.Insert
            ActiveSheet.Cells(2, 1).value = OF_suiviSFY
            ActiveSheet.Cells(2, 3).value = Sheets("Suivi SFY-DC").Cells(i, 3)
            ActiveSheet.Cells(2, 4).value = Sheets("Suivi SFY-DC").Cells(i, 1)
            ActiveSheet.Cells(2, 1).Select
            Selection.EntireRow.Insert
            ActiveSheet.Cells(2, 1).value = OF_suiviSFY
            ActiveSheet.Cells(2, 3).value = Sheets("Suivi SFY-DC").Cells(i, 3)
            ActiveSheet.Cells(2, 4).value = Sheets("Suivi SFY-DC").Cells(i, 1)
        Else
            numero = CInt(numerocompo)
            For j = 1 To j = numero Step 1
                ActiveSheet.Cells(2, 1).Select 
                Selection.EntireRow.Insert
                ActiveSheet.Cells(2, 1).value = OF_suiviSFY
                ActiveSheet.Cells(2, 3).value = Sheets("Suivi SFY-DC").Cells(i, 3)
                ActiveSheet.Cells(2, 4).value = Sheets("Suivi SFY-DC").Cells(i, 1)
            Next j
        End If
    Else
    End If
Next i
End Sub

Añade tu respuesta

Haz clic para o