Buscar datos por "Imputbox" y eliminarlos

Necesito encontrar números por inputbox en una base de datos para poder eliminarlos, por lo cual la macro tendría que brindarme lo siguiente:

Mediante un "Imputbox" definir el rango de la base a buscar.

Mediante un "Imputbox" ingresar los números a buscar en dicha base, el cuadro de dialogo me tendría que permitir ingresar hasta 24 números como máximo y 1 numero como mínimo.

Luego la macro en base a los números ingresados los tendría que buscar y borrar.

1 respuesta

Respuesta
1

Existe la función "InputBox" y el método "Application.InputBox", por lo que comentas, en líneas generales, el segundo te será, probablemente más útil pues permite ingresar en él, cambiándole "Type", rangos o matrices como las que requieres.

El posterior proceso de borrado, o similares, ya es otros "cantar" pues hay que programarlo todo. Sugiero darle una mirada al uso del método sugerido, a ver si te es útil, y te vamos ayudando sobre tus avances.

Abraham Valencia

Buen día, Abraham, sinceramente no conozco el método que mencionas pero si vos consderas que es más útil, no hay problema, podrs ayudarme entonces con la macro

Gracias.-

Agrego un código, que no es de mi autoría, pero que satisface mi necesidad pero parcialmente, ya que busca de a 1 dato por vez, hay posibilidades que se pueda modificar para que me permita ingresar todos los datos a buscar de una sola vez, copio el código para evaluar si se puede modificar.

Sub buscaryborrar()
Dim Borrar As Boolean
Borrar = False
valor_buscado = InputBox("Introduzca el valor a buscar y borrar", "Valor a buscar")
On Local Error Resume Next
If valor_buscado <> "" Then
Do While Err.Number = 0
Columns("A:Z").Select
Selection.Find(What:=valor_buscado, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
If Err.Number = 0 Then
ActiveCell.Select
Selection.ClearContents
Borrar = True
End If
Loop
Range("A1").Select
If Borrado = True Then
MsgBox "Valores encontrados y borrados", vbInformation, "Borrados"
Else
MsgBox "Valor no encontrado.", vbExclamation, "No encontrado"
End If
Else
MsgBox ("Valor no válido")
End If
End Sub

Prueba esto:

Option Explicit
Sub BuquedayBorrado()
Dim DatosaBuscar As Variant
Dim MiRango As Range, Busqueda As Range
Dim Direccion As String
Dim y As Integer
Set MiRango = Application.InputBox(Prompt:="Ingrese el rango", Type:=8)
Let DatosaBuscar = Application.InputBox(Prompt:="Ingreso los datos buscar del siguiente modo: {1,2,3}", Type:=64)
For y = LBound(DatosaBuscar) To UBound(DatosaBuscar)
With MiRango
Set Busqueda = .Find(DatosaBuscar(y))
    Direccion = Busqueda.Address
    Range(Direccion).ClearContents
End With
Next y
End Sub

Ojo con algunas cosas:

1- Es muy importante la forma en que se ingresa un "Array" (varios datos) cuando se usa "Application.InputBox", es más, si ves la línea en donde lo uso, hasta indicaciones coloco.

2- No he colocado controladores de errores, he ido, por decirlo de un modo, "al grano"

3- Sobre colocar de 1 a 24 datos, como una suerte de límite, hay que "contar" los datos ingresados y pedir que se vuelvan a ingresar ya que "Application.InputBox" no tiene "algo" que pueda lograr eso de modo directo

Salu2

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas