Me sirvio a la prefeccion, mil gracias 

Ahora tengo otro problema. Resulta que necesito hacer todo el sub anterior pero para otro producto (otra columna) porque son muchos. 
Te escribo el codigo, es el mismo que me enviaste pero le agregue un ElseIf (lo marque  de color rojo) para seleccionar otra columna pero lo q pasa es que se me queda pegado:(   
Sub Worksheet_Change(ByVal Target As Range)
'si hay errores, que continúe
On Error Resume Next
'Ocultamos el procedimiento
'Application.ScreenUpdating = False
'si cambiamos algo de la columna E... 
'BOLSA PARA AUTOCLAVE 12X15"
If ActiveSheet.Name = "Inventario" And Target.Column = 5 Then
    'copiamos los 5 valores del final a otra hoja
    Range("E1").Select
    'bajamos hasta el final de la columna
    UltimaFila = Columns("E:E").Range("A2990").End(xlUp).Row
    Cells(UltimaFila, 5).Select
    ActiveCell = UltimaFila.Select
    'recogemos los datos de las 5 últimas filas
    If ActiveCell <> "" Then
        'si la celda contiene datos, lo pasamos a una variable
        datoA1 = ActiveCell
    Else
        'si no hay datos, buscamos la celda con el último dato
        Do While IsEmpty(ActiveCell)
            ActiveCell.Offset(-1, 0).Select
        Loop
        datoA1 = ActiveCell
    End If 
    If ActiveCell.Offset(-1, 0) <> "" Then
        datoA2 = ActiveCell.Offset(-1, 0)
    Else
        Do While IsEmpty(ActiveCell.Offset(-1, 0))
            ActiveCell.Offset(-1, 0).Select
        Loop
        datoA2 = ActiveCell.Offset(-1, 0)
    End If 
    If ActiveCell.Offset(-2, 0) <> "" Then
        datoA3 = ActiveCell.Offset(-2, 0)
    Else
        Do While IsEmpty(ActiveCell.Offset(-2, 0))
            ActiveCell.Offset(-1, 0).Select
        Loop
        datoA3 = ActiveCell.Offset(-2, 0)
    End If 
    If ActiveCell.Offset(-3, 0) <> "" Then
        datoA4 = ActiveCell.Offset(-3, 0)
    Else
        Do While IsEmpty(ActiveCell.Offset(-3, 0))
            ActiveCell.Offset(-1, 0).Select
        Loop
        datoA4 = ActiveCell.Offset(-3, 0)
    End If 
    If ActiveCell.Offset(-4, 0) <> "" Then
        datoA5 = ActiveCell.Offset(-4, 0)
    Else
        Do While IsEmpty(ActiveCell.Offset(-4, 0))
            ActiveCell.Offset(-1, 0).Select
        Loop
        datoA5 = ActiveCell.Offset(-4, 0)
    End If 
    If ActiveCell.Offset(-5, 0) <> "" Then
        datoA6 = ActiveCell.Offset(-5, 0)
    Else
        Do While IsEmpty(ActiveCell.Offset(-5, 0))
            ActiveCell.Offset(-1, 0).Select
        Loop
        datoA6 = ActiveCell.Offset(-5, 0)
    End If 
    'llamamos al macro pegardatos
    pegardatosA 
'BOLSA PARA AUTOCLAVE 3.5*8 
ElseIf ActiveSheet.Name = "Inventario" And Target.Column = 16 Then    'copiamos los 5 valores del final a otra hoja
    Range("P1").Select
    'bajamos hasta el final de la columna
    UltimaFila = Columns("P:P").Range("P2990").End(xlUp).Row
    Cells(UltimaFila, 16).Select
    ActiveCell = UltimaFila.Select
    'recogemos los datos de las 5 últimas filas
    If ActiveCell <> "" Then
        'si la celda contiene datos, lo pasamos a una variable
        datoB1 = ActiveCell
    Else
        'si no hay datos, buscamos la celda con el último dato
        Do While IsEmpty(ActiveCell)
            ActiveCell.Offset(-1, 0).Select
        Loop
        datoB1 = ActiveCell
    End If 
    If ActiveCell.Offset(-1, 0) <> "" Then
        datoB2 = ActiveCell.Offset(-1, 0)
    Else
        Do While IsEmpty(ActiveCell.Offset(-1, 0))
            ActiveCell.Offset(-1, 0).Select
        Loop
        datoB2 = ActiveCell.Offset(-1, 0)
    End If 
    If ActiveCell.Offset(-2, 0) <> "" Then
        datoB3 = ActiveCell.Offset(-2, 0)
    Else
        Do While IsEmpty(ActiveCell.Offset(-2, 0))
            ActiveCell.Offset(-1, 0).Select
        Loop
        datoB3 = ActiveCell.Offset(-2, 0)
    End If 
    If ActiveCell.Offset(-3, 0) <> "" Then
        datoB4 = ActiveCell.Offset(-3, 0)
    Else
        Do While IsEmpty(ActiveCell.Offset(-3, 0))
            ActiveCell.Offset(-1, 0).Select
        Loop
        datoB4 = ActiveCell.Offset(-3, 0)
    End If 
    If ActiveCell.Offset(-4, 0) <> "" Then
        datoB5 = ActiveCell.Offset(-4, 0)
    Else
        Do While IsEmpty(ActiveCell.Offset(-4, 0))
            ActiveCell.Offset(-1, 0).Select
        Loop
        datoB5 = ActiveCell.Offset(-4, 0)
    End If 
    If ActiveCell.Offset(-5, 0) <> "" Then
        datoB6 = ActiveCell.Offset(-5, 0)
    Else
        Do While IsEmpty(ActiveCell.Offset(-5, 0))
            ActiveCell.Offset(-1, 0).Select
        Loop
        datoB6 = ActiveCell.Offset(-5, 0)
    End If 
    'llamamos al macro pegardatos
    pegardatosB
End If
'Mostramos el procedimiento
Application.ScreenUpdating = True
End Sub   
SALUDOS