poner "0" en vez de "vacio"

05/11/2006 - 02:30 por MyVi | Informe spam
Buenas chicos...

A ver si me podeis ayudar con esto.


Tengo unas celdas que no pueden estar nunca vacias. Inicialmente tienen
un valor "0" (aunque esta activo el ocultar ceros, asi que no se ve
directamente y parece que las celdas esten vacias), de ahi se introduce
un nº de cinco digitos (lease 26537).
Hasta aqui todo bien. El problema viene cuando el usuario se equivoca y
elimina dicho nº de la celda y la deja vacia. Aqui aparece un #VALUE!
y me desmonta toda la hoja.

¿Cómo hariais para, al eliminar el valor de la celda, en vez de
quedarse en "vacio" se pusiera un "0" en su lugar?
Bueno, o dicho de otro modo, ¿como podriamos hacer para que dicho
"vacio" no entorpeciera el correcto cálculo de las demás celdas, y
por consiguiente, no se mostrara este #VALUE! y siguiera calculando
normalmente?

Si conseguimos que "vacio"="0" siempre, ya lo tengo arreglado.
Si teneis que saber cómo hago los cálculos en la hoja os diré que
tengo formulas asi:

=(SUMPRODUCT((D7:D56="B2B/PROFESIONAL")*(E7:E56="SI")))+(SUMPRODUCT((M7:M56="B2B/PROFESIONAL")*(N7:N56="SI")))

... y sino recuerdo mal... tambien algo de código (aunque ahora mismo
tengo el office 2007, y, sinceramente, no sé como mirarlo para
recordar... :(


ANTES DE TERMINAR, una pregunta mas.

¿Cómo puedo conseguir que se ejecute un código al salir de una
celda? Más concretamente. En una celda (la del "0"), tras cambiar el
valor "0" que hay por defecto y poner un nº de XX.XXX, como puedo
ejecutar un código que lo que hace es poner una palabra u otra en la
celda siguiente (en funcion del primer díjito del nº entrado)?.

Como no he sabido cómo hacerlo, he puesto un boton transparente (creo
que era un boton, pero repito que con el 2007 no sé como ver la barrá
de herramientas y la flecha para poder seleccionar y ver sus
propiedades...) que al pulsarlo ejecuta dicha acción, pero me sucede
que no me es muy práctico, ya que yo soy el único que realmente sabe
utilizarlo. El usuario (quien realmente me interesa que lo use) no
tiene idea de cómo proceder.

Gracias

Voy a seguir investingando a ver si averiguo como conseguir estas cosas
que digo en el 2007 que no encuentro.

Gracias de nuevo.

Preguntas similare

Leer las respuestas

#1 AnSanVal
05/11/2006 - 11:24 | Informe spam
Hola My Vi.
En vez de ".tengo 'unas celdas' que.", es conveniente que indiques el rango
de esas celdas, para que la ayuda que recibas se parezca lo más posible a la
solución que necesitas. :-)

Referente a tu consulta...
Sin código(en la celda que te da error)>>> puedes usar condicionales tipo:
=SI(ESERROR(tu_fórmula);0;tu_fórmula)
o también...
=SI(A4="";0;tu_fórmula)

Por código>>> en el evento CHANGE de la hoja puedes poner algo como:
(suponiendo que la columna a controlar es A)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
If Target = "" Then Target = 0 ' aqui evita celda vacia.
Else
' otra posibilidad (o código).
End If
End Sub

Saludos desde Tenerife.
*******************************
"MyVi" escribió en el mensaje
news:
Buenas chicos...

A ver si me podeis ayudar con esto.


Tengo unas celdas que no pueden estar nunca vacias. Inicialmente tienen
un valor "0" (aunque esta activo el ocultar ceros, asi que no se ve
directamente y parece que las celdas esten vacias), de ahi se introduce
un nº de cinco digitos (lease 26537).
Hasta aqui todo bien. El problema viene cuando el usuario se equivoca y
elimina dicho nº de la celda y la deja vacia. Aqui aparece un #VALUE!
y me desmonta toda la hoja.

¿Cómo hariais para, al eliminar el valor de la celda, en vez de
quedarse en "vacio" se pusiera un "0" en su lugar?
Bueno, o dicho de otro modo, ¿como podriamos hacer para que dicho
"vacio" no entorpeciera el correcto cálculo de las demás celdas, y
por consiguiente, no se mostrara este #VALUE! y siguiera calculando
normalmente?

Si conseguimos que "vacio"="0" siempre, ya lo tengo arreglado.
Si teneis que saber cómo hago los cálculos en la hoja os diré que
tengo formulas asi:

=(SUMPRODUCT((D7:D56="B2B/PROFESIONAL")*(E7:E56="SI")))+(SUMPRODUCT((M7:M56="B2B/PROFESIONAL")*(N7:N56="SI")))

... y sino recuerdo mal... tambien algo de código (aunque ahora mismo
tengo el office 2007, y, sinceramente, no sé como mirarlo para
recordar... :(


ANTES DE TERMINAR, una pregunta mas.

¿Cómo puedo conseguir que se ejecute un código al salir de una
celda? Más concretamente. En una celda (la del "0"), tras cambiar el
valor "0" que hay por defecto y poner un nº de XX.XXX, como puedo
ejecutar un código que lo que hace es poner una palabra u otra en la
celda siguiente (en funcion del primer díjito del nº entrado)?.

Como no he sabido cómo hacerlo, he puesto un boton transparente (creo
que era un boton, pero repito que con el 2007 no sé como ver la barrá
de herramientas y la flecha para poder seleccionar y ver sus
propiedades...) que al pulsarlo ejecuta dicha acción, pero me sucede
que no me es muy práctico, ya que yo soy el único que realmente sabe
utilizarlo. El usuario (quien realmente me interesa que lo use) no
tiene idea de cómo proceder.

Gracias

Voy a seguir investingando a ver si averiguo como conseguir estas cosas
que digo en el 2007 que no encuentro.

Gracias de nuevo.
Respuesta Responder a este mensaje
#2 Tux
05/11/2006 - 11:30 | Informe spam
MyVi escribió:
Buenas chicos...

A ver si me podeis ayudar con esto.


Tengo unas celdas que no pueden estar nunca vacias. Inicialmente tienen
un valor "0" (aunque esta activo el ocultar ceros, asi que no se ve
directamente y parece que las celdas esten vacias), de ahi se introduce
un nº de cinco digitos (lease 26537).
Hasta aqui todo bien. El problema viene cuando el usuario se equivoca y
elimina dicho nº de la celda y la deja vacia. Aqui aparece un #VALUE!
y me desmonta toda la hoja.

¿Cómo hariais para, al eliminar el valor de la celda, en vez de
quedarse en "vacio" se pusiera un "0" en su lugar?
Bueno, o dicho de otro modo, ¿como podriamos hacer para que dicho
"vacio" no entorpeciera el correcto cálculo de las demás celdas, y
por consiguiente, no se mostrara este #VALUE! y siguiera calculando
normalmente?

Si conseguimos que "vacio"="0" siempre, ya lo tengo arreglado.
Si teneis que saber cómo hago los cálculos en la hoja os diré que
tengo formulas asi:

=(SUMPRODUCT((D7:D56="B2B/PROFESIONAL")*(E7:E56="SI")))+(SUMPRODUCT((M7:M56="B2B/PROFESIONAL")*(N7:N56="SI")))

... y sino recuerdo mal... tambien algo de código (aunque ahora mismo
tengo el office 2007, y, sinceramente, no sé como mirarlo para
recordar... :(


ANTES DE TERMINAR, una pregunta mas.

¿Cómo puedo conseguir que se ejecute un código al salir de una
celda? Más concretamente. En una celda (la del "0"), tras cambiar el
valor "0" que hay por defecto y poner un nº de XX.XXX, como puedo
ejecutar un código que lo que hace es poner una palabra u otra en la
celda siguiente (en funcion del primer díjito del nº entrado)?.

Como no he sabido cómo hacerlo, he puesto un boton transparente (creo
que era un boton, pero repito que con el 2007 no sé como ver la barrá
de herramientas y la flecha para poder seleccionar y ver sus
propiedades...) que al pulsarlo ejecuta dicha acción, pero me sucede
que no me es muy práctico, ya que yo soy el único que realmente sabe
utilizarlo. El usuario (quien realmente me interesa que lo use) no
tiene idea de cómo proceder.

Gracias

Voy a seguir investingando a ver si averiguo como conseguir estas cosas
que digo en el 2007 que no encuentro.

Gracias de nuevo.




Hola Myvi:-)

Para ver el código de VbExcel, con la combinacion de teclas ALT+F11 se
puede ver y si necesitas barras de herramientas o demas comandos que no
estan visibles:

http://tinyurl.com/tudrd

Nos comentas cualquier duda ok?
¡Un SAludo!:-)

www.fermu.com
www.zorval.es
Respuesta Responder a este mensaje
#3 MyVi
05/11/2006 - 12:25 | Informe spam
Buenas,
pues el rango a controlar (que sea "0" o nº "XX.XXX" pero nunca
"VACIO") es B7:B56 y K7:K56 (si, hay 2 columnas que han de ser
controladas).

Respecto a lo ejecutar una acción. (Ya recuerdo cómo lo he hecho).
He puesto un boton que al pulsarlo ejecuta una macro y esta macro es
quien realiza la acción, pero... ¿cómo se podria hacer de forma
automática just al salir de la celda? Por ejemplo la celda B7 (si
quieres rangos son los que hay arriba).
Mas concretamente se tenemos las palabras Ferias, Montajes, Contrato y
estoy usando este codigo:

If Range ("S7") 0 = "1" Then
Range ("C7") = "Ferias"
End If

Donde Ferias = 1, Montajes = 2, Contrato = 3 y asi la macro me
analiza y me pone la palabra adecuada en funcion del nº que encuentra
en la celda. Como mis conocimientos no son muy extensos lo que he hecho
es, en otra celda S7, calcular el primer digito asi:
[=(VALUE(MID(B7;1;1)))]

¿alguna idea de cómo hacerlo al salir de la celda (en este ejemplo la
B7 y que en funcion del primer digito que encontramos en B7 que en C7
se ponga la palabra adecuada..? (Ferias, Montajes, Contrato de
Mantenimiento, Intervención)


Gracias
Respuesta Responder a este mensaje
#4 Tux
05/11/2006 - 18:53 | Informe spam
MyVi escribió:
Buenas,
pues el rango a controlar (que sea "0" o nº "XX.XXX" pero nunca
"VACIO") es B7:B56 y K7:K56 (si, hay 2 columnas que han de ser
controladas).

Respecto a lo ejecutar una acción. (Ya recuerdo cómo lo he hecho).
He puesto un boton que al pulsarlo ejecuta una macro y esta macro es
quien realiza la acción, pero... ¿cómo se podria hacer de forma
automática just al salir de la celda? Por ejemplo la celda B7 (si
quieres rangos son los que hay arriba).
Mas concretamente se tenemos las palabras Ferias, Montajes, Contrato y
estoy usando este codigo:

If Range ("S7") 0 = "1" Then
Range ("C7") = "Ferias"
End If

Donde Ferias = 1, Montajes = 2, Contrato = 3 y asi la macro me
analiza y me pone la palabra adecuada en funcion del nº que encuentra
en la celda. Como mis conocimientos no son muy extensos lo que he hecho
es, en otra celda S7, calcular el primer digito asi:
[=(VALUE(MID(B7;1;1)))]

¿alguna idea de cómo hacerlo al salir de la celda (en este ejemplo la
B7 y que en funcion del primer digito que encontramos en B7 que en C7
se ponga la palabra adecuada..? (Ferias, Montajes, Contrato de
Mantenimiento, Intervención)


Gracias




Hola Myvi :-)

Para la primera parte puedes probar con la formula o el codigo que nos
ha ofrecido AnSanVal, y en la segunda parte tendras que perdonarme, pero
no entiendo muy bien que es lo que necesitas, ya que me he liado con el
tema de ferias, montajes y etc...y la formula para calcular el primer
digito :-S

Bueno nos comentas ok? :-)


¡Un SAludo!:-)

www.fermu.com
www.zorval.es
Respuesta Responder a este mensaje
#5 MyVi
05/11/2006 - 19:32 | Informe spam
SEGUNDA PARTE: [repetimos]

Hola, sin problemas lo intentamos de nuevo.

Tengo B7 [B7:B56 & K7:K56] que le introduzco un nº de 5 digitos:
XX.XXX
Bien, lo introduzo y le doy a TAB o simplemente salgo de esa celda y
pulso en cualquier otro lugar. OKEY. Pues necesito que en C7 (siempre
es la celda de la derecha) me indique una palabra en función del
primer digito del nº introducido:

1X.XXX = Ferias
2X.XXX = Montajes
3X.XXX = Contrato Mantenimiento
4X.XXX = Intervención
5X.XXX = Garantia
6X.XXX = Reintervención

A ver, algo asi

IF B7 = 1X.XXX then C7 = Ferias
IF B7 = 2X.XXX then C7 = Montajes

Y asi.

El caso, es que lo tengo hecho que, tras pulsar un boton (que al estar
transparente y vacio pues no se ve) ejecuta una macro que me lo hace.
Yo, lo que deseo es que sea algo automático y que se ejecute al salir
de la celda C7 (en vez de tener que darle al boton para ejecutar la
macro).

Asi que aqui hay 2 formas: Una seria simplemente saber cómo ejecutar
una macro al salir de una celda, y la otra seria que al salir de la
celda ejecute codigo para que analice el primer digito y nos muestre el
resultado en la otra celda.

Espero que ahora se entienda mejor.

Gracias
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida