Visual Basic para Aplicaciones - problema con fechas y horas

Life is soft - evento anual de software empresarial
 
Vista:

problema con fechas y horas

Publicado por carlos (55 intervenciones) el 02/03/2006 17:06:23
Hola! Espero que puedan darme una mano. Estoy haciendo una planilla en Excel para registrar las horas de entrada y salida de personal y calcular el tiempo trabajado. Los datos se ingresan mediante un Form de VBA. En algunas ocasiones el personal entra a las 22 hs de un dia y sale a las 6 del siguiente, de modo que hay que tener en cuenta fecha y hora.
Mi problema es que no entiendo las explicaciones que se dan en la ayuda de Excel !!!
Alli se dice lo que se puede hacer, pero no COMO hacerlo.
¿Alguien podria explicarme COMO restar fechas, en lenguaje simple???
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema con fechas y horas

Publicado por GabrielDR (5 intervenciones) el 02/03/2006 22:13:57
Como guardas las fechas en tu form. en una variable tipo date?
o directamente en una celda de Excel?

Bueno intentaré explicar usando la primera forma usando variables tipo DATE

supongo que existe 2 variables en un modulo BAS.
Public FECHA1 As Date
Public FECHA2 As Date

y en el form
'Al presionar el boton Entrada se registra la hora en la variable
Private Sub CommandButton1_Click()
'La funcion NOW captura la hora y fecha del sistema
TextBox1.Text = Now
End Sub

'Al presionar el boton Salida se registra la hora en el textbox
y se calcula el tiempo para luego escribirlo en la hoja de excell
Private Sub CommandButton2_Click()
TextBox2.Text = Now
'La funcion isdate determina si el text1box1 era una fecha (pors si se metio manual)
If IsDate(TextBox1.Text) Then
FECHA1 = TextBox1.Text
FECHA2 = TextBox2.Text
Else
'Si se metio manual se "Formatea" usando la funcion FORMAT
FECHA1 = Format("dd/mm/yyyy HH:MM:SS", CStr(TextBox1.Text))
FECHA2 = Format("dd/mm/yyyy HH:MM:SS", CStr(TextBox2.Text))
End If

Application.ActiveWindow.Activate
ActiveCell.Value = "NombreEmpleado1"
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = FECHA2 - FECHA1
'Y ya solo falta darle formato a la columna del tiempo para que muestre horas o minutos.
End Sub

Ahora la otra forma usando celdas de excell.
supongo que usas las funciones Fecha y Hora para registrar la horas
La funcion fecha tiene la siguiente sintaxis:
Fecha(año,mes,dia) para registrar por ejemplo el dia de hoy se pondria fecha(105,3,02) 105 por que 100 es el año 2000. 3 porque es el mes de marzo y dia es el dia 2.
Hay varias funciones para descomponer la hora a manera de registralas.
en VBA son Date,time,month,year,day,hour,etc. en entorno para Excel son AHORA,FECHA,HORA,MES,DIA,AÑO,etc.
ya con esto se puede calcular las fechas, como se hacia a la antigüita

Espero sea de utilidad, en caso contrario Especifica que parte de la ayuda no entiste y te echamos la mano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con fechas y horas

Publicado por carlos (55 intervenciones) el 04/03/2006 22:07:22
Gabriel, muchas gracias por tu ayuda. Trataba de usar el primer metodo, pero lo hacia mal. Ahora funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con fechas y horas

Publicado por Carlos (1 intervención) el 12/11/2009 14:56:03
Hola he creado una función que recibe un string y un formato DATE y devuelve un valor con formato DATE
Cuando se ejecuta la función en excel, me da fallo VALOR!

Se trata de dos columnas. Cuando en la 1ª introduzco un valor, el sistema me lo tiene que detectar, y escribirme en la 2ªcolumna la fecha del día en que introduzco un valor nuevo en la columna 1ª.
Aquí va el código, por si me pudierais decir cual es el problema.
Un saludo y muchas gracias,

Carlos

Function resul(quien As Long, fecha As Date) As Date

Dim Temp As Long

resul = ""
Temp = ""
If quien = Temp Then resul = "" Else
Temp = quien
resul = Date
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con fechas y horas

Publicado por Roberto (1 intervención) el 14/03/2006 02:27:10
-hola, sabes toy recien aprendiendo y necesito ayuda con una fecha la cual se ingresara manual y al momento de que elija la opcion de contado o 30, 60, 90 días se genere la fecha que correspomde a la opción, tu ayuda me dio una idea pero el no saber mucho de VB......me complica (estoy haciendo una planilla de facturas con macros en excel.)...............si puedes o pueden darme una manito, se les agradece de ante mano..........

Robert
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con fechas

Publicado por Antonio (1 intervención) el 04/12/2007 20:41:38
Gracias de antemano.
Te expongo mi problema.

Cuando introduzco la fecha en un TextBox dentro de un UserForm, cuando me pasa la fecha a una celda de la hoja de cálculo, me cambia el formato de la fecha, te explico, escribo la fecha 01/12/2007 y me escribe en la celda 12/01/2007, ya intenté cambiando el formato de la fecha del ordenador y nada.

Espero que puedas ayudarme, como podrás notar por la consulta estoy empezando en esto de VBA. También te agradecería si me dijeras de algún libro para poder ir practicando un poco este tema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar