Valor de variables.

15/07/2005 - 22:59 por Desastres | Informe spam
Buenas tardes.
Tengo unas variables levantiscas. Recogen datos del tipo Código de documento, fecha y valor del documento.
Quería declararlas como Single, pero si lo hago, con las instrucciones siguientes:

If variable = "" then msgbox " Toca la trompeta"
If variable <>"" then msgbox " Toca la trompeta"

resulta que la trompeta no se calla.

Para conseguir que se calle la trompeta la mitad de las veces, tengo que declar las variables como Variant y utrilizar :

If IsEmpty(Variable) then MsgBox " Toca la trompeta"
If Not IsEmpty(Variable) then MsgBox " Toca la trompeta"

Pero no es lo que deseaba hacer. ¿Como puedo tener la seguridad de que una variable tiene algún valor y obtenerlo? y
¿como anular ese valor ( no cero que es un valor posible ) ?

Saludos
Des

Preguntas similare

Leer las respuestas

#1 Desastres
15/07/2005 - 23:55 | Informe spam
Hola KL, Gracias.

Si la variable ( utilicé Single) toma valores distintos en un proceso y coincide que el ultimo o una secuencia al final
, tiene por valor cero( el mismo valor que por defecto ) , no podré discernir si ha sido inicializada o no.

Aún así me has ayudado, pero quisiera encontrar una forma de obtener como respuesta la seguridad de que la variable se
ha "llenado" o no.
Es decir, obtener algo similar al IsEmty de una Variant o el Is nothing de un rango no encontrado con un Find.

Saludos
José Luis

"KL" escribió en el mensaje news:%
Mostrar la cita
#2 KL
16/07/2005 - 00:05 | Informe spam
Hola Desastres,

Pues con los tipos numericos va a ser dificil si no imposible, dado que el
valor inicial (por defecto) es tambien uno de los valores permitidos por tu
macro. De todas formas, por que no expones tu codigo y pensamos juntos en
alguna solucion radicalmente distinta?

Saludos,
KL


"Desastres" wrote in message
news:%
Mostrar la cita
#3 Manuel Romero
16/07/2005 - 00:29 | Informe spam
Para yu primer caso, la variable no puede ser Single, sino String ya que la
comparas con el valor "".

Obviamente la trompeta nunca se calla, porque si esta vacia suena y si no
esta vacia, tambien suena. Existe alguna opcion diferente? como dice el
viejo y conocido refran (Chapulin Colorado) "palo porque bogas y palo porque
no bogas"

En el otro caso, cuando usas Variants, Empty es un valor especial que pueden
tomar este tipo de variables (al igual que Null, y a proposito es diferente
de ""), por lo tanto la primera condicion puede o no puede cumplirse a menos
que asignes explicitamente el valor Empty a la variable Variant o la
declares y no le asignes ningun valor.


"Desastres" escribió en el mensaje
news:
Mostrar la cita
#4 Desastres
16/07/2005 - 01:11 | Informe spam
Hola KL, Gracias.

No tengo el código a mano (esta en otro Pc sin conexión) pero el planteamiento es muy sencillo.( la solución, para mi,
es otra cosa).
En un proceso comercial se pueden definir tres tipos de documentos: Pedido, Factura pro forma y Factura comercial (
entre otros ).
Supón el numero/ código del pedido en la columna 6, el de la factura pro forma en la 8 y la Factura comercial en la 10.
Como el proceso, en este caso, comienza por el pedido, cada una de las líneas tiene código de pedido y fecha de pedido,
pero no es obligatorio( al menos en mi planteamiento) que se pase una Factura pro forma de todas las líneas del pedido
( por tanto alguna línea en Factura Pro forma no tendrá valor , o lo que es lo mismo la variable que la recoja valdrá
cero. Si pido el valor de la variable en este momento, no sabré si se ha inicializado o no, salvo que ponga un contador
paralelo a ella que me recoja todas las veces que no ha sido cero, con lo cual sabría que ha sido inicializada si el
contador es al menos 1..
La misma proporción entre Pedido y pro forma se puede establecer entre Pro forma y Factura comercial definitiva. ( en
este caso columna 10 )
Se trataba tan solo de intentar sacar el máximo partido con los menos pasos posibles.
Saludos
Des



"KL" escribió en el mensaje news:
Mostrar la cita
#5 KL
16/07/2005 - 09:27 | Informe spam
Hola Desastres,

Y cual es el problema de basar tu contador en el valor de la celda y no en
el de la variable entonces? P.ej.:

For Each c In rng
If Not IsBlank(c) Then
Contador=Contador+1
'El resto de tu codigo
End If
Next c

Saludos,
KL


"Desastres" wrote in message
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida