Modificar Macro Teléfonos
Estimados,
Tengo esta macro que me permite encontrar teléfonos inútiles, en una base Grande de un aproximado de 5000 filas, quería un apoyo para que se pueda modificar agregando/Modificando lo siguiente:
* Si el largo de un teléfono es de 11 caracteres y el 3er dígito es 9 entonces que borre los 2 primeros dígitos. EJM 84997885448 este numero debería quedar asi 997885448
* En lugar que diga la palabra INCORRECTO que me de en FORMULAS el LARGO de la celda (cantidad de caracteres en la celda), de ese modo si hay algún cambio que se cambie el largo de la celda.
* Los teléfonos MENORES o IGUALES a 5 caracteres eliminarlos.
Dejo la formula que actualmente utilizo. Gracias.
Sub Verifica_Telefonos()
Dim INTENTAR As Long, total As Integer
Dim contador1 As Integer, contador2 As Long, contador3 As Integer
Dim columna As String, observación As String, cliente As String
INTENTAR = 2 '1era fila a verificar
contador1 = 0 'contando los # incorrectos
contador2 = 0 'contando los # incorrectos
contador3 = 0 'contando los # incorrectos
columna = InputBox$("Ingrese la letra que corresponda a la columna a analizar los números telefónicos : ")
observación = InputBox$("Ingrese el nombre de la columna donde mostrará la observación : ")
While Range("A" & INTENTAR).Value <> ""
If Len(Range(columna & INTENTAR).Value) = 10 And Left(Range(columna & INTENTAR).Value, 2) = 19 Then
Range(columna & INTENTAR).Value = Right(Range(columna & INTENTAR).Value, 9)
End If
If Len(Range(columna & INTENTAR).Value) = 9 And Left(Range(columna & INTENTAR).Value, 1) <> 9 Then
Range(columna & INTENTAR).Value = Right(Range(columna & INTENTAR).Value, 9)
contador1 = contador1 + 1
Range(observación & INTENTAR).Value = "incorrecto"
End If
If (Len(Range(columna & INTENTAR).Value) < 7 And Len(Range(columna & INTENTAR).Value) > 1) Or Len(Range(columna & INTENTAR).Value) > 9 Then
'Verificando cantidad de teléfonos no válidos por longitud
contador1 = contador1 + 1
Range(observación & INTENTAR).Value = "incorrecto"
Else
If Left(Range(columna & INTENTAR).Value, 5) = 0 Or Right(Range(columna & INTENTAR).Value, 5) = 11111 Or Right(Range(columna & INTENTAR).Value, 5) = 22222 Or Right(Range(columna & INTENTAR).Value, 5) = 33333 Or Right(Range(columna & INTENTAR).Value, 5) = 44444 Or Right(Range(columna & INTENTAR).Value, 5) = 55555 Or Right(Range(columna & INTENTAR).Value, 5) = 66666 Or Right(Range(columna & INTENTAR).Value, 5) = 77777 Or Right(Range(columna & INTENTAR).Value, 5) = 88888 Or Right(Range(columna & INTENTAR).Value, 5) = 99999 Then
'Verificando cantidad de teléfonos no válidos
contador2 = contador2 + 1
Range(observación & INTENTAR).Value = "incorrecto"
Else
If Len(Range(columna & INTENTAR).Value) <> 9 And Left(Range(columna & INTENTAR).Value, 1) = 9 Then
contador3 = contador3 + 1
Range(observación & INTENTAR).Value = "incorrecto"
End If
End If
If Left(Range(columna & INTENTAR).Value, 2) = 19 Or Left(Range(columna & INTENTAR).Value, 2) = 80 Or Left(Range(columna & INTENTAR).Value, 2) = 81 Or Left(Range(columna & INTENTAR).Value, 2) = 85 Or Left(Range(columna & INTENTAR).Value, 2) = 86 Or Left(Range(columna & INTENTAR).Value, 2) = 87 Or Left(Range(columna & INTENTAR).Value, 2) = 88 Or Left(Range(columna & INTENTAR).Value, 2) = 89 Or Left(Range(columna & INTENTAR).Value, 2) = 18 Then
'Verificando celulares no validos
contador3 = contador3 + 1
Range(observación & INTENTAR).Value = "incorrecto"
End If
End If
INTENTAR = INTENTAR + 1
Wend
total = contador1 + contador2 + contador3
MsgBox "La cantidad de números telefónicos incorrectos encontrados en la base de son: " & CStr(total) & "."
' Acceso directo: CTRL+m
End Sub