Validar si es valor numérico o texto con VBA

28/02/2010 - 14:58 por Yrjo, Inc. | Informe spam
Buenos días Héctor Miguel, necesito ayuda en cuanto a las funciones que me
diste hace un par de días, resulta que isnumber, istext, isnontext no las
necesito para evaluar una celda completa sino que tomo una cadena de texto y
empiezo a evaluar caracter por caracter y por ejemplo "a45c6p0kt*9#10" la
idea es tomar cada elemente y validar si es texto para hacer otro
procedimiento, pero al evaluar los números me dicen que también son texto...
traté de utilizar val(string) pero lo que es texto lo toma como cero (0)
entonces no me sirve así. Qué puedo hacer para validar cada caracter como
debe ser?

Muchas gracias por la ayuda



hola, Jorge !


... como puedo validar si un caracter es texto o numerico con VBA?
y que resultado arroja la validacion? ...



si queres validar el contenido de la celda activa, prueba: =>
application.isnumber(activecell)
si el contenido es alfanumerico devuelve "falso"
si el contenido es un numero devuelve "verdadero"
si contiene un numero precedido por apostrofo devuelve "falso"
si la celda tiene formato de texto devuelve "falso"

otras funciones de hoja de calculo con las que puedes "validar":
..istext
..isnontext
 

Leer las respuestas

#1 Héctor Miguel
28/02/2010 - 23:40 | Informe spam
hola, Jorge !

... cuanto a las funciones... resulta que... no las necesito para evaluar una celda completa
sino que tomo una cadena de texto y empiezo a evaluar caracter por caracter y por ejemplo "a45c6p0kt*9#10"
la idea es tomar cada elemente y validar si es texto para hacer otro procedimiento
pero al evaluar los numeros me dicen que tambien son texto...
trate de utilizar val(string) pero lo que es texto lo toma como cero (0) entonces no me sirve asi.
Que puedo hacer para validar cada caracter como debe ser?



analiza y prueba el siguiente ejemplo (adapta a tus necesidades)
suponiendo el texto original en [A1] y quieres los numeros en [B1] y los otros (no numericos) en [C1]

Sub Numeros_en_B_Letras_en_C()
Dim n As Byte, c As String, nNum As String, nCar As String
For n = 1 To Len([a1])
c = Mid([a1], n, 1)
If c Like "[0-9]" Then
nNum = nNum & c
Else
nCar = nCar & c
End If
Next
[b1] = nNum
[c1] = nCar
End Sub

sauldos,
hector.

__ previos __
... como puedo validar si un caracter es texto o numerico con VBA?
y que resultado arroja la validacion? ...



si queres validar el contenido de la celda activa, prueba: => application.isnumber(activecell)
si el contenido es alfanumerico devuelve "falso"
si el contenido es un numero devuelve "verdadero"
si contiene un numero precedido por apostrofo devuelve "falso"
si la celda tiene formato de texto devuelve "falso"

otras funciones de hoja de calculo con las que puedes "validar":
.istext
.isnontext

Preguntas similares