Excel Macro borrar celda si contiene texto

Te quería preguntar como puedo hacer para borrar el valor de la celda si contiene cierto texto, el tema es que quiero poner entre 5 a 10 palabras que activen el borrado de las celdas. El Rango es una columna C:

1 Respuesta

Respuesta
1
Una posibilidad es interceptar el evento change de la hoja en cuestión. Así en el código de la hoja incluyes:
Private Sub Worksheet_Change(ByVal target As Range)
Application.EnableEvents = False
If Not Intersect(target, Range("c:c")) Is Nothing Then
' si ha cambiado la columna C compruebo contenido
Call CompruebaValor(target)
End If
Application.EnableEvents = True
End Sub
Luego en un módulo incluyes la función donde comprueba los valores. En mi ejemplo hay tres palabras que no deja escribir y las borra. Dependiendo de tus necesidades puedes necesitar una comprobación más compleja.
Sub CompruebaValor(s As Range)
Select Case s.Value
Case "Hola", "Adios", "bien"
Debug.Print "Borrará : " & s.Value
s.Value = ""
Case Else ' Other values.
Debug.Print "Valor aceptado"
End Select
End Sub
He dejado los Debug. Print por si quieres ver en la ventana "Inmedite" los resultados de la depuración. Si no los necesitas los borras.
He usado la función select case por si quieres hacer diferentes cosas con diferentes valores. Puedes usar un IF con varios OR si lo prefieres y solamente borras o aún mejor llamar a una función que devuelve true o false según haya que borrar o no. Dentro de esa función haces las comprobaciones oportunas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas