Macro para buscar y limpiar datos

Tengo este código:
Sub Clear()
buscardato = InputBox("Deme el dato")
Sheets("Hoja1").Select
Range("B1").Select
Cells.Find(What:=buscardato, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
Selection.Clear
Range("B1").Select
End Sub
Lo que quiero es que en ves de que salga un un InputBox, me busque lo que tengo en la hoja2 (rango B7:B15) y lo borre en la hoja1

1 Respuesta

Respuesta
1

H o l a:

Por ejemplo, si en la hoja2, en B7 tienes la palabra "hola".

¿Qué necesitas?

1. ¿Qué busque en la columna "B" de la hoja1 y limpie el primer "hola" que encuentre?

2. ¿Qué busque en toda la hoja1 y limpie el primer "hola" que encuentre?

3. ¿Qué busque en toda la hoja1 y limpie todos los "hola" que encuentre?


Esta macro es para la opción 2. Que busque en toda la hoja1 y limpie el primer "hola" que encuentre:

Sub BuscarBorrar()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    '
    For i = 7 To 15
        If h2.Cells(i, "B") <> "" Then
            Set b = h1.Cells.Find(h2.Cells(i, "B"), LookAt:=xlWhole)
            If Not b Is Nothing Then
                b.Value = ""
            End If
        End If
    Next
    MsgBox "Proceso terminado"
End Sub

Esta macro es para la opción 3: Que busque en toda la hoja1 y limpie todos los "hola" que encuentre:

Sub BuscarBorrar()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    '
    For i = 7 To 15
        If h2.Cells(i, "B") <> "" Then
            h1.Cells.Replace h2.Cells(i, "B"), "", LookAt:=xlWhole
        End If
    Next
    MsgBox "Proceso terminado"
End Sub

Hola Dante

Quería pedirle una ultima ayuda. Tomando como referencia la opción 2. Que se debería cambiar para que en lugar de limpiar en la Hoja 1, ahora elimine toda la fila, en donde contenga la palabra.

De antemano muchas gracias.

Quedaría así:

Sub BuscarBorrar()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    '
    For i = 7 To 15
        If h2.Cells(i, "B") <> "" Then
            Set b = h1.Cells.Find(h2.Cells(i, "B"), LookAt:=xlWhole)
            If Not b Is Nothing Then
                h1.rows(b.row).delete
            End If
        End If
    Next
    MsgBox "Proceso terminado"
End Sub

Tienes pendiente valorar esta respuesta. G r acias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas