Buscar y Reemplazar para experto julio

Hola muchas gracias por las respuestas en la pregunta anterior...
Estuve probando la macro que me diste y falla algo en ella... Cuando busco algo lo encuentra efectivamente y borra el contenido del costado, pero cuando repito la búsqueda no la encuentra por más que este allí ... Por que...
Esto me diste tu...
Sub buscar()
Dim buscado As String
buscado=Application.InputBox("Indique su busqueda")
Do While buscado<> ""
Range("A1:A8").Select
On Error Resume Next
Selection.Find(What:=buscado, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Selection.FindNext(After:=ActiveCell).Select
ActiveCell.Offset(0, 1).Select
Selection.ClearContents
buscado =Application.InputBox("Indique su busqueda")
Loop
End Sub
Prueva con este ejemplo y veras...
A1 = 1
A2 = 1
A3 = 2
A4 = 2
A5 = 3
A6 = 3
A7 = 4
A8 = 4
Si buscas el numero 2 lo encuentra en A4, pero como se que hay otro en A3 pongo nuevamente la búsqueda y nada de nada no lo encuentra... Por que es esto...
Por ultimo quisiera ver si puedes arreglar la macro para que solo busque todas las coincidencias en el rango y no poner una nueva búsqueda de lo mismo, se entiende...
Desde ya muchas gracias..
Ricardo
Respuesta
1
Vaya tela de cansancio con esta macro, te la voy a reahceer sin que tenga que buscar nada, y que te borre las celdas contiguas. Esto lo hace en toda la columna A:
Private Sub Borrar()
bus=Inputbox("Dime que dato busco")
Range("A1").Select
Do While ActiveCell.Value=""
dat=ActiveCell.Value
If ActiveCell.Value = bus Then
ActiveCell.Offset(0,1).Clear
Else
ActiveCell.Offset(1,0).Select
Loop
End Sub
Esta macro tan sencilla te pide un valor, se sitúa en la celda A1 y va bajando por filas si encuentra el valor que le has pedido borra el de la celda de al lado y esto lo hace mientras la columna A tenga algún valor. La pones en un botón y la ejecutas cuando quieras.
Un saludo
Julio
*A ver si ya terminamos con la dichosa macro.
Hola. Disculpa mi terquedad con la macro... es solo que no doy con la justa por una u otra razón...
La que me pasaste ahora no logro hacerla funcionar.. creo que le falta el End if (pero aun así no anda), la anterior estaba bien solo el error de no seguir buscando si encuentra otra coincidencia, nada más... si puedes modificar la anterior creo que sera más fácil...
Gracias y mil disculpas por las molestias ocasionadas...
Ricardo
Private Sub Borrar()
bus=Inputbox("Dime que dato busco")
Range("A1").Select
Do While ActiveCell.Value=""
dat=ActiveCell.Value
If ActiveCell.Value = bus Then
ActiveCell.Offset(0,1).Clear
Else
ActiveCell.Offset(1,0).Select
Loop
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas