Buscar datos en otra hoja con una macro

Buen día, tengo dos hojas la primera llamada "principal" y la segunda "clientes". En "principal" tengo un botón con la siguiente macro:
Dim n As Range
    palabra_a_buscar = InputBox("Ingesar algun dato del cliente", "Buscador")
    Set n = Worksheets("clientes").Cells.Find(what:=palabra_a_buscar)
    If n Is Nothing Then
        MsgBox "No he encontrado nada. Lo siento."
    Else
        MsgBox "Texto encontrado:  " & UCase(palabra_a_buscar) & "."
    End If

Quiero que esta macro, encuentre el dato (que espero que sea como lo hice), me lleve al dato y me pregunte si quiero eliminarlo (solo quiero vaciar la columna, porque con otro ejemplo me elimino la celda y corrió otros datos)
Desde ya muchas gracias.
{"lat":42.2610174009552,"lng":-3.16386938095093}

1 Respuesta

Respuesta
1
Te la ajusté un poco para contemplar además la posibilidad de que cancelen la ventana del Inputbox.
Entendí que necesitas eliminar la columna completa del dato encontrado, si no es así aclarame un poco más que se deber eliminar.
Sub busco_y_elimino()
'desarrollada por Elsamatilde
Dim n As Range
    palabra_a_buscar = InputBox("Ingesar algun dato del cliente", "Buscador")
    If palabra_a_buscar = "" Then Exit Sub
    Set n = Worksheets("Hoja1").Cells.Find(what:=palabra_a_buscar)
    If n Is Nothing Then
        MsgBox "No he encontrado nada. Lo siento."
    Else
        MsgBox "Texto encontrado:  " & UCase(palabra_a_buscar) & "."
        fila = n.Row
        sino = MsgBox("¿Deseas eliminar la columna?", vbYesNo, "Confirmar")
        If sino = vbYes Then n.EntireColumn.Delete
 
       
    End If
End Sub
Muchísimas gracias Elsa por responder... ¿qué posibilidades hay de que cuando encuentre la palabra me lleve hasta ahí (yo busco en la hoja1 y los datos están en la hoja2)? Esta muy bueno, pero quiero que me elimine una cierta cantidad columnas de la misma fila.
Ejemplo:
Dato buscado en hoja1: Ruben
Formato de hoja2
Nombre Edad Altura
Javier 25 1.78
Ruben 35 1.82
Quiero que todos los datos de Ruben sean reemplazando con "Anulado" así se mantiene el formato de la tabla y el lugar.
Desde ya muchas gracias.
A partir de esta parte de la rutina es donde tenés que ajustar los pasos:
Else
        MsgBox "Texto encontrado:  " & UCase(palabra_a_buscar) & "."
'posicionarse en el dato encontrado:
n.select
'a continuación guarda la fila (para borrarla) y consulta si eliminaro no. (*)
        fila = n.Row
        sino = MsgBox("¿Deseas eliminar la columna?", vbYesNo, "Confirmar")
If sino = vbYes Then
'n.EntireColumn.Delete  'si en lugar de eliminar solo se desea 'borrar' el contenido
n.offset(0,1) = ""     'borra lo que se encuentra en la col sgte
n.offset(0,2) = ""     'borra lo que se encuentra en 2 col a derecha
n.value = ""
end if
Espero que haya quedado claro, ya que en las respuestas se amontona el texto. Cualquier dificultad escribime nuevamente
Otra vez gracias Elsa, me ha servido de mucha ayuda tu aporte pero sigo sin poder completar mi trabajo. Paso a detallarte:
La línea "n.Select" me genera un error "1004" Error en el método select de la classe range .
Voy a tratar de detallarte lo más que pueda mi caso o en su defecto me gustaría poder mandarte el archivo para que lo veas.
Tengo una hoja llamada "principal" en donde tengo un botón que sirve para eliminar clientes (de otra hoja llamada "clientes"). Al hacer click sobre el botón, ingreso el dato del cliente a borrar y si lo encuentra me pregunta para eliminarlo, de ser afimativo se borra los datos sin perder columnas ya que la tabla que tengo tiene fórmulas.
Así se ve la hoja "clientes"
Orden(*) Razón Social Dirección Teléfono
      1 Matías Estero 257 1234567
      2 Pedro Las Lagunas 1245 456879
(*) En Orden tengo una formulita que me muestra el numero correlativo si en la celda de Razón Social hay algún dato, por eso es que no puedo borra toda la fila.
Desde ya muchas gracias Elsa.
Saludos
El ajuste enviado no elimina la fila, solo borra el contenido de las celdas sgtes. Podes quitar la línea que te marca error y volverla a probar.
Si aún así no resulta como lo necesitás, enviame el libro. En mi sitio encontrarás el correo, no olvides indicarme tu alias y motivo de consulta.
Sdos
Gracias Elsa, te envíe el archivo adjunto del libro que estoy realizando. Quedo a la espera de tu contestación para puntuar.
Saludos Elsa.
Bien, recién será para esta noche... no finalices aún
Sdos
Elsa
Ya te envié respuesta anoche a tu correo. No olvides finalizar la consulta si el tema quedó concluido
Sdos
Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas