Buscar y eliminar un valor en Excel

Inicio » Excel para contadores. » (16 / 11 / 2011 )

Excel ofrece diferentes opciones para borrar datos y valores, algunas más ágiles que otras, y una de ellas actúa con gran velocidad sin importarla el tamaño de la base de datos.

La gran ventaja que nos ofrece Excel, es la posibilidad de programar tareas que nos permitan hacer nuestro trabajo más rápido, lo que es de capital importancia cuando estamos manipulando miles de registros. Nada fácil encontrar uno para borrarlo.

Por suerte existen varias rutinas en Visual Basic (macros) que nos permiten automatizar este trabajo.

Todo lo que hay que hacer es pegar el siguiente código en nuestro editor de Visual Basic:

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

Todo lo que hay que modificar en este código es la primera línea para cambiar el nombre de la macro  y la línea 8  (Columns("A:Z").Select ) para modificar el rango en el que Excel ha de buscar el valor a borrar.

Este código permite buscar y borrar un dato que se encuentre en la hoja activa únicamente.

La macro borrará todo el contenido de la celda, aún cuando sólo una parte de ella coincida con el término de búsqueda, por lo que en algunos casos puede no servir para algunas tareas, pero en todo caso resulta ser un buen ejemplo para desarrollar otras que se adapten más a nuestras necesidades.

Material para complementar

Recomiéndanos en

Google+ Facebook Twitter

Siéntase libre de opinar

4 Opiniones
  1. Paturuzu dice:

    Les dejo unas correcciones a la macro... no me funcionaba la opcion de las columnas asi que la comemte y agregue unas lineas. Tambien hay que modificar el If Borrado x Borrar sino no da el mensaje de exito.
    Saludos

    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("A1:A2000").Select
    Sheets("Historico").Range("A2: R2000").Find(What:=valor_buscado, After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Activate
    '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
    Selection.Delete Shift:=xlUp
    Borrar = True
    End If
    Loop
    Range("A1").Select
    If Borrar = 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

  2. honjoren dice:

    Hola,

    Muy buen aporte.
    Yo estoy buscando algo similar pero que sólo borre parte de la celda, es decir, si una celda contiene 45,00 EUR, y el valor buscado es " EUR", que me borre sólo dicho texto y mantenga 45,00. Además necesito que 45,00 quede como número, ya que 45,00 EUR era texto.

    Me puedes indicar cómo quedaría el código?

    Gracias

  3. Fernando dice:

    Y como hacer para que elimine las que coincide exactamente con el valor de la celda?
    Si busco el numero 1, me elimina todas las celdas que contienen el nº1, ¿como hacer para que sólo me elimine las celdas "1"??
    Gracias

En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc. Lo que no está permitido es insultar o escribir palabras ofensivas o soeces. Si lo hace, su comentario será rechazado por el sistema o será eliminado por el administrador. Por último, trate de no escribir en mayúscula sostenida, resulta muy difícil leerle.