Foros del Web » Soporte técnico » Ofimática »

Caja de mensajes en Visual (creo que se llama asi)

Estas en el tema de Caja de mensajes en Visual (creo que se llama asi) en el foro de Ofimática en Foros del Web. Hola colegas tengo esta duda: Quiero agregar una funcion en excel para poder controlar el dinero en la caja (asi como los supermercados, que chequean ...
  #1 (permalink)  
Antiguo 30/05/2006, 08:20
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Caja de mensajes en Visual (creo que se llama asi)

Hola colegas tengo esta duda:
Quiero agregar una funcion en excel para poder controlar el dinero en la caja (asi como los supermercados, que chequean lo que tienen antes de entrar, y al salir, y la diferencia es la venta del dia)

Me gustaria que al abrir un libro de excel me pararezca un mensaje para ingresar el dinero en caja, y luego a determinada hora ( 20:15 hs que es el cierre) pararezca nuevamente este mensaje para ingresar lo que quedo del dia. Seria barbaro que se resten, y que esa diferencia la calcule contra por ejemplo la celda A1, donde esta el monto que se vendió. Si coincide: "Control correcto", sino, "sobra o falta xx dinero". La idea me parece buena, se puede?

Ojala me puedan echar una mano, lamentablemente me cuesta mucho VBasic, si fuera como action script de flash, me animaria a hacerlo, pero aca necesito de su ayuda grax de anticipado
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #2 (permalink)  
Antiguo 30/05/2006, 08:49
 
Fecha de Ingreso: noviembre-2005
Mensajes: 170
Antigüedad: 18 años, 5 meses
Puntos: 1
Que si se puede!? Dame 10 minutos, jejeje. Cuanto tiempo sin saber de ti,
__________________
El sabio no dice nunca todo lo que piensa,
pero siempre piensa todo lo que dice.
Aristóteles :pensando:
  #3 (permalink)  
Antiguo 30/05/2006, 09:13
 
Fecha de Ingreso: noviembre-2005
Mensajes: 170
Antigüedad: 18 años, 5 meses
Puntos: 1
Me ha costado un poco más de lo que he dicho porque he tenido que ir al baño. Jejejeje.
Aquí tienes un ejemplo que deberás adaptarlo a tú aplicación
http://www.mytempdir.com/702293
__________________
El sabio no dice nunca todo lo que piensa,
pero siempre piensa todo lo que dice.
Aristóteles :pensando:
  #4 (permalink)  
Antiguo 30/05/2006, 12:18
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Capooo, te debo una, una mas de las 100 que me has ayudado ;)
Mas que agradecido, ahora intentare adaptarlo a mi aplicasion, cualquier novedad, les cuento!! salu2
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #5 (permalink)  
Antiguo 31/05/2006, 08:16
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
POTYPOTY, estoy intentando aplicar el codigo que me pasaste, y tengo algunos problemitas :)

1)
No entiendo como opera, creo que creaste un macro que se llama "cierre", hasta ahi todo ok, entonces lo edite, probe cambiarle el nombre de Título1 = "CUENTA" x por ejemplo, Título1 = "CONTROL DE CAJA". lo guardo y al abrir nuevamente el archivo, el titulo del recuadro se sigue llamando "cuenta"

2) si corro nuevamentre el macro, ejecutandolo, no me pregunta cuanto tengo al inicio, directamente me pregunta al cierre, y lo calcula directamente

3) Quiza este macro esta repetido 2 veces, uno al inicio y otro al final, es algo asi? por que no encuentro al funcion de retardo, para poder ponerla en la hora que necesito que aprezca el recuadro

Estoy mareado, jajaj help
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #6 (permalink)  
Antiguo 31/05/2006, 08:58
 
Fecha de Ingreso: noviembre-2005
Mensajes: 170
Antigüedad: 18 años, 5 meses
Puntos: 1
La solución es bien sencilla.
MIRA en "thisworkbook". Allí tienes una función que se ejecuta al abrir el libro.
Te puse 2 temporizadores: 1 hace ejecutar la macro "cierre" transcurridos 5 sg desde la apertura del libro y el otro ejecuta la misma macro a las 5 de la tarde creo.
Echale un vistazo, porque seguro que no has cambiado el titulo de este proceso.
Si tienes alguna duda me la comentas, pero creo que con esto lo entenderás bien.
Por cierto, por si no sabes donde está lo que te comento está justo debajo de todas las hojas en la parte derecha del la pantalla del editor de código de VBA.
Un saludo
__________________
El sabio no dice nunca todo lo que piensa,
pero siempre piensa todo lo que dice.
Aristóteles :pensando:
  #7 (permalink)  
Antiguo 31/05/2006, 16:01
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Genial Poty!, ya lo adapte, sin problemas, quedo barbaro... puedo ser un poquito mas hincha, 2 pequeños detalles mas, asi queda bien profesional ;)

1- Restringir los caracteres para solo numeros
2- Que no se pueda seguir adelante con apretar "enter" si el campo esta vacio

Esta es la ultima, no jodo mas
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #8 (permalink)  
Antiguo 01/06/2006, 01:29
 
Fecha de Ingreso: noviembre-2005
Mensajes: 170
Antigüedad: 18 años, 5 meses
Puntos: 1
La segunda pregunta es fácil
Añade este código en los lugares correspondientes. Lo que está en azul es lo que ya tienes.

volver:
Range("C1").Value = InputBox(Mensaje, Título) ' mensaje para insertar el dinero final
If Range("C1").Value = "" Then
MsgBox ("Debe introducir un número")
GoSub volver
End If

volver:
Range("D1").Value = InputBox(Mensaje1, Título1) ' mensaje para insertar el dinero final
If Range("D1").Value = "" Then
MsgBox ("Debe introducir un número")
GoSub volver
End If

Lo de que escriba un número es algo similar, pero hay que identificar lo de la celda como número. Ahora mismo no me acuerdo como es pero si buscas por excel o por VBA seguro que lo encuentras. Si no lo encuentras, cuando tenga un rato te lo busco si eso.
Me parece que tú estás demasiado consentido, jejejeje.
__________________
El sabio no dice nunca todo lo que piensa,
pero siempre piensa todo lo que dice.
Aristóteles :pensando:
  #9 (permalink)  
Antiguo 01/06/2006, 02:27
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
A ver si este ejemplo pruede valer:
Código:
sub probatina()
Mensaje = "¿Cuál es el dinero disponible en este momento?"
Título = "CUENTA"
pregunta:
respuesta = InputBox(Mensaje, Título)
Do While respuesta = "" Or Not IsNumeric(respuesta)
    MsgBox ("Debe introducir un número")
    GoTo pregunta
Loop
Range("C1") = respuesta
end sub
  #10 (permalink)  
Antiguo 01/06/2006, 05:50
 
Fecha de Ingreso: noviembre-2005
Mensajes: 170
Antigüedad: 18 años, 5 meses
Puntos: 1
De acuerdo

Sabía que tenías que ser tú quien diera la solución. No sabía de esa función. suponía que existía, pero no la localizaba.
Me podrías explicar cómo buscas esas funciones (IsNumeric, IsEmpty, etc), porque me sería muy útil. Esas funciones con grabar macros no salen.
gracias
__________________
El sabio no dice nunca todo lo que piensa,
pero siempre piensa todo lo que dice.
Aristóteles :pensando:
  #11 (permalink)  
Antiguo 01/06/2006, 07:32
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Efectivamente, esas funciones no salen con grabar macros, porque con la grabadora solo se almacenan las pulsaciones de teclas que efectúas.

Yo las he sacado de este fichero de ayuda que una vez alguien colgó en el foro de asp. Lo descomprimes, y haces doble clic sobre él (no instala nada, así que doble clic sin miedo, porque simplemente es un fichero de ayuda, como esas ventanas que te aparecen, cuando en una aplicación pulsas F1). En el apartado "funciones", verás todas las que puedes utilizar.

Por ejemplo, en ese fichero que he colgado, la ayuda sobre la función IsNumeric, es esta:

Código:
Función IsNumeric
 
Devuelve un valor de tipo booleano que indica si se puede evaluar una expresión como un número.
 
IsNumeric(expresión)
 
El argumento expresión puede ser cualquier expresión.
 
Comentarios
 
IsNumeric devuelve True si toda la expresión se reconoce como un número; si no, devuelve False. IsNumeric devuelve False si expresión es una expresión de fecha.
 
El siguiente ejemplo utiliza la función IsNumeric para determinar si una variable se puede evaluar como un número: 
 
Dim MiVar, MiComprobacionMiVar = 53   ' Asigna un valor.MiComprobacion = IsNumeric
(MiVar)   ' Devuelve True.MiVar = "459.95"   ' Asigna un valor.MiComprobacion = IsNumeric
(MiVar)   ' Devuelve True.MiVar = "45 Help"   ' Asigna un valor.MiComprobacion = IsNumeric
(MiVar)   ' Devuelve False.
En la propia ayuda de VBA si seleccionas la pestaña "Contenido", verás un apartado llamado Funciones. Allí están ordenadas alfabéticamente.En esta ayuda de VBA, la función IsNumeric, está explicada así:
Código:
IsNumeric (Función)
 
Devuelve un valor de tipo Boolean que indica si una expresión se puede evaluar como un número.
Sintaxis
IsNumeric(expresión)
El argumento expresión requerido, es un tipo de datos Variant que contiene una expresión numérica o una expresión de tipo cadena.
Comentarios
La función IsNumeric devuelve True si la expresión completa se reconoce como un número; en otro caso, devuelve False.
La función IsNumeric devuelve False si expresión es una expresión de fecha.
Ambas ayudas se complementan bastante bien, porque cuando una no te aclara algo, la otra acaba por volverte loco
  #12 (permalink)  
Antiguo 01/06/2006, 23:10
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Gracias colegas!, me quedo perfecto, tarde un poco en adaptarlo por que me costaba la sintaxis del VB pero quedo solucionado y terminado. Nuevamente agradecido y a disposicion por cualquier duda que pueda ayudarlos ;)
__________________
-- Nunca te des por vencido, aún vencido -- Web
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:13.