Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Validar si es valor numérico o texto con VBA

8,673 views
Skip to first unread message

Yrjo, Inc.

unread,
Feb 26, 2010, 3:39:01 PM2/26/10
to
Buenas tardes, cómo puedo validar si un caracter es texto o númérico con VBA?
y qué resultado arroja la validación? Muchas gracias

Jorge M

H�ctor Miguel

unread,
Feb 26, 2010, 8:00:55 PM2/26/10
to
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

saludos,
hector.


Yrjo, Inc.

unread,
Feb 27, 2010, 11:37:01 AM2/27/10
to
muchísimas gracias!

"Héctor Miguel" wrote:

> ..istext
> ..isnontext
>
> saludos,
> hector.
>
>
> .
>

Yrjo, Inc.

unread,
Feb 28, 2010, 8:58:01 AM2/28/10
to
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

H�ctor Miguel

unread,
Feb 28, 2010, 5:40:23 PM2/28/10
to
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


0 new messages