martes, 31 de julio de 2012

Función OnlyText Excel

Les dejo el código para crear una función en Excel que les permita validar si una celda en particular contiene o no solo texto, pues Excel puede determinar si el contenido de la celda es o no Numérico mediante la función ESNUMERO(), pero no viene nada para texto, de igual forma la adapté para validar nombres en Español...

Public Function TextOnly(ByVal d As Variant) As Boolean
TextOnly = True
Dim src, ptrn, ptrn1, re, re1, Match, Matches1, Matches
 ptrn = "\W+" ptrn1 = "[0-9]"

 ' Create the regular expression.

Set re = New RegExp
 re.Pattern = ptrn
 re.IgnoreCase = False
 re.Global = False
 Set re1 = New RegExp
 re1.Pattern = ptrn1
 re1.IgnoreCase = False
 re1.Global = False

 ' Perform the search.
 Set Matches = re.Execute(d)
 Set Matches1 = re1.Execute(d)

 ' Iterate through the Matches collection.
 If Matches.Count > 0 Or Matches1.Count = 0 Then
 TextOnly = False
 End If
 End Function

 Public Function Names(ByVal d As String) As Boolean
 Dim src, ptrn, ptrn1, re, re1, Match, Matches1, Matches
 ptrn = "[^ A-Za-zñáéíóú]"

 ' Create the regular expression.
 Set re = New RegExp
 re.Pattern = ptrn
 re.IgnoreCase = False
 re.Global = False

 ' Perform the search.
 Set Matches = re.Execute(d)

 ' Iterate through the Matches collection.
 If Matches.Count > 0 Then
 Names = False
 Else Names = True
 End If

 End Function

No hay comentarios:

Publicar un comentario