Macros para eliminar fila de en otra hoja

Soy nuevo en esto de las macros, necesito si me pudieran ayudar con lo siguiente
Tengo un libro con 2 hojas lo que ingreso en la hoja 1 también se ingresa en la hoja 2
necesito que cuando este en la hoja 1 y selecciona una celda de la columna "B" busque este valor en la hoja 2 columna "B" y elimine la fila completa

Respuesta
1

Entra al Editor, selecciona desde el panel a tu izquierda el objeto HOJA1 y allí copia este código:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'x Elsamatilde
'se controla la selección en col B a partir de fila 2...AJUSTAR
If Target.Column <> 2 Or Target.Row < 2 Or Target.Count > 1 Then Exit Sub
'si la celda está vacía no se ejecuta la búsqueda
If Target.Value = "" Then Exit Sub
Set ho2 = Sheets("Hoja2")
'se busca el contenido de la celda seleccionada en col B de Hoja2
Set busco = ho2.Range("B:B").Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
'se encuentra el valor buscado elimina la fil
If Not busco Is Nothing Then ho2.Range("A" & busco.Row).EntireRow.Delete
End Sub

Observa que solo se controla col B a partir de fila 2.... ajusta al nro de fila donde empiecen tus datos.

Muchas Gracias!!!

Seria posible agregar este código a  un botón ??

es decir que seleccione la celda  luego pinche el botón eliminar y que haga la búsqueda y elimine la fila??

Espero me puedas ayudar 

Saludos 

Eliminá entonces el código dejado en el objeto HOJA.

Ahora inserta un módulo y allí copia esta otra macro:

Sub eliminaRegistro()
'x Elsamatilde
'si la celda está vacía no se ejecuta la búsqueda
If ActiveCell.Value = "" Then Exit Sub
'se solicita confirmación
sino = MsgBox("¿Confirmas eliminar este registro de Hoja2?", vbQuestion + vbYesNo, "CONFIRMAR")
If sino = vbYes Then
    Set ho2 = Sheets("Hoja2")
    'se busca el contenido de la celda seleccionada en col B de Hoja2
    Set busco = ho2.Range("B:B").Find(ActiveCell.Value, LookIn:=xlValues, lookat:=xlWhole)
    'si encuentra el valor buscado elimina la fil
    If Not busco Is Nothing Then ho2.Range("A" & busco.Row).EntireRow.Delete
End If
End Sub

Para ejecutarla podrías utilizar un botón, un atajo de teclado o desde el mismo menú de macros. Este tema lo tengo desarrollado en la sección Macros de mi sitio que dejo al pie.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas