Canales de Ingeniería Civil en: *Whatsapp* / *Telegram*

Detectar valor numérico en un rango de datos

Para subir hojas de calculo de Ingenieria civil
Reglas del Foro
Favor de usar el boton de Dar Gracias
En el mensaje del usuario al que deseas agradecer
En vez de escribir gracias repetidamente
Responder
tetriak
Usuario Principiante
Usuario Principiante
Mensajes: 13
Registrado: Mar Jul 14, 2009 4:55 am

Hola a todos, quisiera preguntaros lo siguiente:

He programado una macro haciendo que el Excel detecte si el contenido de la celda es numérico o no, y en función de este, continuar con la macro o pararse en ese punto.

El codigo es el siguiente:

----------------------------------------------------------------------------

If Not IsNumeric(ActiveSheet.Range("A1")) Then
MsgBox Prompt:="En la casilla A1 no hay ningún valor numérico", Title:="ERROR"
Continuar= False
End If

-----------------------------------------------------------------

Funciona bien para la celda A1, lo que pasa es que a mi me interesa que lo que analize si es numérico o no sea un rango de datos, concretamente el Range("B2:C2"). El problema es que si en la primera linea donde pone A1, lo modifico por B2:C2 , la macro no funciona.

Tiene que ser ese rango exactamente, no me sirve ninguna celda.

¿Cómo podria hacer para que me detectara si en ese rango hay algun contenido numérico o no?


Muchas gracias,


Fernando
nassiul
Usuario Master Superior
Usuario Master Superior
Mensajes: 716
Registrado: Vie Abr 25, 2008 9:41 am
Ubicación: MAD
España

Hola,

Esa función solo se puede aplicar a una celda cada vez, no a un rango de celdas. Hay que ir una por una. Haz un procedimiento que pase por cada una de las celdas. Para ello en vez de utilizar range utiliza cells que va indices (fila, columna).
Ojo fila y columna pasan a ser contadores numericos
For fila = 1 to fila =x
for columna =1 to columna =x
If Not IsNumeric(ActiveSheet.cells(fila, columna)) Then
MsgBox Prompt:="En la casilla A1 no hay ningún valor numérico", Title:="ERROR"
Continuar= False
End If
next columna
next fila

espero te sirva. si solo tienes que comprobar una fila o columna de la hoja bastaría con un solo bucle. Recomendacion en vez de parar con un mensaje, indicalo cambiando de color la celda.

saludos.
tetriak
Usuario Principiante
Usuario Principiante
Mensajes: 13
Registrado: Mar Jul 14, 2009 4:55 am

Muchas gracias. Lo he estado revisando y me he dejado una cosa. Inicialmente el código es el siguiente:
-----------------------------------------------
Range("B2:C2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
--------------------------------------------------
A partir de aqui tenemos una selección hasta el final del todo de las columnas B i C. La duda es que necesito detectar si contiene algun caracter numérico o no. En caso que la seleccion esté vacia, que pare la macro, y si contiene algun valor numérico, que continue.

¿sería igualmente con el mismo codigo que me has puesto?

¿podría hacerse con alguna función que detecte si existe un valor numérico en un rango de datos copiado en el portapapeles?

Muchas gracias
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje

Volver a “Hojas de Calculo Excel”

  • Información