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