Te anexo el código.
Sigue las indicaciones:
- Los 2 libros deben estar abiertos.
- Revisa en la macro el nombre del libro y de la hoja en esta línea:
Set sh = Workbooks("excel de utilidad.xlsx").Sheets("Hoja 2")
- Si el libro o la hoja se llama diferente, debes corregirlo en la macro
- Pon la macro en el libro1 "Ordenes sisco", en la hoja "informacion"
Sigue las Instrucciones para poner la macro en los eventos de worksheet
- Abre tu libro de excel "Ordenes sisco"
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(informacion)
- En el panel del lado derecho copia la macro
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng1 As Range, rng2 As Range, c As Range, f As Range
Dim sh As Worksheet
Dim num As Variant
Dim lr As Long
'
Set sh = Workbooks("excel de utilidad.xlsx").Sheets("Hoja 2")
'
Set rng1 = Intersect(Target, Range("M2:M" & Rows.Count))
If Not rng1 Is Nothing Then
For Each c In rng1
If c.Value <> "" Then
num = Range("A" & c.Row).Value
Set f = sh.Range("E:E").Find(num, , xlValues, xlWhole, , , False)
If f Is Nothing Then
lr = sh.Range("E" & Rows.Count).End(3).Row + 1
sh.Range("E" & lr).Value = num
End If
End If
Next
End If
'
Set rng2 = Intersect(Target, Range("N2:N" & Rows.Count))
If Not rng2 Is Nothing Then
For Each c In rng2
If c.Value <> "" Then
num = Range("A" & c.Row).Value
Set f = sh.Range("E:E").Find(num, , xlValues, xlWhole, , , False)
If Not f Is Nothing Then
sh.Range("E" & f.Row & ":H" & f.Row).Delete Shift:=xlUp
End If
End If
Next
End If
End Sub
- Guarda el libro como Libro de excel habilitado para macros.
- Regresa a la hoja "informacion".
- Captura un número de orden.
- Captura la fecha de entrada en la columna M.
- En automático se guardará el número de orden en libro2.
- Si capturas la fecha de salida en la columna N, en automático se borra el número del libro2.
Si tienes problemas para poner la macro en tu libro1, envíame tus archivos a mi correo:
[email protected]