............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

calcular fecha de vencimiento en días hábiles en forma automatica con macro

Ver el tema anterior Ver el tema siguiente Ir abajo

calcular fecha de vencimiento en días hábiles en forma automatica con macro

Mensaje por mane el Lun Mar 16, 2015 5:09 pm

hola:

Tengo una consulta estoy haciendo una macro con formulario el cual ingreso datos y se traspasa a una planilla excel, pero presentó la siguiente consulta para ver si me pueden ayudar.
En un textbox tengo una fecha de validación, y en otro tengo la fecha de vencimiento de ésta última es el resultado, ya que debe contar 5 días y que estos sean hábiles ( no considerar feriados, sábados y domingos), y que no sea modificable por el usuario, salvo si cambia la fecha de validación.
Mi consulta es como colocar fecha de vencimiento en forma automática en el formulario y que se traspase a la planilla de excel con estas condiciones:
Por ejemplo:
textbox1+5 días hábiles= textbox2
02-06-2014+5 días hábiles=09-06-2014

Lo que he realizado es esto, pero me arroja error y más encima no distingue los feriados, sábados y domingo.

Private Sub cvencimiento_Change()

Dim fecha_vencimiento As Date
Dim intervalo As Date

intervalo = Format(intervalo, "05-mm-yyyy")

fecha_vencimiento = cvalidación + intervalo

mane

Femenino Cantidad de envíos : 1
Edad : 42
Ciudad - Pais : chile
Version de Excel : 2010
Fecha de inscripción : 16/03/2015

Volver arriba Ir abajo

Re: calcular fecha de vencimiento en días hábiles en forma automatica con macro

Mensaje por moises melgar el Mar Mar 17, 2015 8:06 pm

Buenos dias

te adjunto 2 formas de como obtener la fecha a 5 dias de vencimiento que buscas
notas:

  • Use la formula de dia.lab para poder realizar ese calculo
  • Defini un rango de celdas como dias feriados (Estos dias se insertan manual, para que por medio de un rango que solo define dia y mes y el año sea el de la fecha a calcular habria que modificar el codigo)
  • El resultado de la fecha de vencimiento lo coloque en un label,asi no podra ser modificado
    para los cuadro de texto en vez de .caption seria .value o .text pero pueden ser editados por el usuario ( a menos que les coloques un label transparente encima)

dudas aqui estamos

opcion1: realizo todo el calculo por medio de VBA sin usar referencias a celdas en excel
lo importante aqui es que textbox no devuelve la referencia como fecha, si no como un texto
asi que extraigo los valores individuales de dia el mes y año contenidas en el textbox por medio de los equivalente de las formulas de Excel (DErecha, extrae e izquierda) con el cual por medio de DateSerial (equivalente de fecha en excel) lo convierto en un formato de fecha (un numero) y asi poder usar el equivalente de eXcel  de dia.lab.
Código:
Private Sub TextBox1_Change()
Dim dia, mes, año, fecha
If Len(TextBox1.Value) = 10 Then

'definimos nuestros datos:
dia = Left(TextBox1.Value, 2)
mes = Mid(TextBox1.Value, 4, 2)
año = Right(TextBox1.Value, 4)
fecha = DateSerial(año, mes, dia)

Label2.Caption = Format(WorksheetFunction.WorkDay(fecha, 5, Range("feriados")), "dd/mm/yyyy")  '<--convertimos a fecha
End If
End Sub

opcion2: paso el dato a una celda en excel (C4) donde otra  celda (C15) ya contiene el valor de Dia.lab de esa celda(C4) cuyo resultado es la que utilizo
Código:
Private Sub TextBox1_Change()
If Len(TextBox1.Value) = 10 Then

'definimos nuestros datos: todo el calculo lo hace en excel (Se pueden mover los 'rangos a otras hojas u ocultarlos)
Range("C14") = TextBox1
Label2.Caption = Format(Range("C15").Value, "dd/mm/yyyy") '<--convertimos a fecha
End If

End Sub

favor de habilitar las macros
saludos

avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 551
Edad : 29
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.