.09.03.17
Buenas tardes, Carlos
Aquí te comparto la siguiente rutina que desarrollé para lograr lo que solicitabas.
Accede al Editor de VBA (Atajo: Alt + F11), allí inserta un módulo (Insertar-Módulo) y pega el siguiente código:
Sub Depura()
'---- Variables modificables ----
'=== Carlos, modifica estos datos de acuerdo a tu proyecto:
PrimCelda = "A7" 'Celda donde está el primer registro a depurar
ClavElim = "ZZZ001" 'clave para eliminar la línea
ColClave = "C" 'Columna donde está la clave para eliminar la línea
'---- fin Variables
'
'---- inicio de rutina:
'
Application.ScreenUpdating = False
PrimFila = Range(PrimCelda).Row
LaColu = Range(PrimCelda).Column
UltFila = Range(Left(PrimCelda, 1) & Rows.Count).End(xlUp).Row
remanentes = UltFila - PrimFila + 1
cont = 0
For LaFila = UltFila To PrimFila Step -1
If IsEmpty(Cells(LaFila, LaColu)) Or Range(ColClave & LaFila).Value = ClavElim Then
Cells(LaFila, LaColu).EntireRow.Delete
cont = cont + 1
Else
ElNumero = ""
REGISTRO = Cells(LaFila, LaColu).Value
For Posi = 1 To Len(REGISTRO)
Caract = Mid(REGISTRO, Posi, 1)
If IsNumeric(Caract) Then
ElNumero = ElNumero & Caract
Else
Exit For
End If
Next
Cells(LaFila, LaColu).Value = Val(ElNumero)
End If
Next
remanentes = remanentes - cont
ElMensaje = IIf(remanentes = 0, "NO QUEDARON NUMEROS OPERABLES" & Chr(10), _
"Quedaron " & remanentes & " número" & IIf(remanentes > 1, "s", "") & Chr(10) & "eliminando " & cont _
& " línea" & IIf(cont > 1, "s", "") & Chr(10) & " un listado de " & UltFila - PrimFila + 1 & " lineas")
TipoMens = IIf(remanentes = 0, vbCritical, vbInformation)
ElTitulo = IIf(remanentes = 0, "NO QUEDARON NUMEROS", "TERMINADO!")
Application.ScreenUpdating = True
MsgBox ElMensaje, TipoMens, ElTitulo
End Sub
Nota que, al principio del código, hay unas variables para que lo adaptes a tu archivo, en caso de que necesites modificarlas.
IMPORTANTE: Siendo que la rutina elimina líneas, te recomiendo que la pruebes sobre una copia de tu planilla y revises si hizo el proceso como esperas que lo haga.
.