Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Calculo de fechas fuera de rango

Estas en el tema de Calculo de fechas fuera de rango en el foro de Visual Basic clásico en Foros del Web. Les explico, dado que no puedo subir el excel. Hay rango de fechas (Inicio y Fin) Supongan que la Fecha Inicio es 17/01/2013 - Fecha ...
  #1 (permalink)  
Antiguo 26/05/2014, 08:10
 
Fecha de Ingreso: mayo-2014
Mensajes: 2
Antigüedad: 10 años, 5 meses
Puntos: 0
Información Calculo de fechas fuera de rango

Les explico, dado que no puedo subir el excel.

Hay rango de fechas (Inicio y Fin)

Supongan que la Fecha Inicio es 17/01/2013 - Fecha Fin 20/02/0213

y tres columnas ( Periodo Anterior, Lo que se Calculo, Periodo Posterior) y Total de días.

Sino que realize una macro para que me contaran desde el día 19 del primer mes al día 18 del segundo mes. Y eso es la celda "Lo que se calculo", lo cual seria 31 días.

Pero hay días que no se entraban en ese rango, osea que no los tomaba en cuenta o contaba, ya que son días antes o después de la restricción. Ya que si hacen un SIFECHA(Inicio,Fin) el total son 35 dias.

Esos días que no se cuentan serian por ejemplo,

Los días antes de ese 19 (<19) pertenecerían al "periodo anterior", seria igual a 2 días.

Los días después de este 18 (>18) pertenecerían al "periodo posterior".

Que finalmente sumando todos te resultaban la celda "Total de días".

Bueno lo que deseo es contar esa cantidad de días antes y después de la restricción en vba. Pero no me sale

La macro que les comente fue esta, pero solo me calcula los 31 días que mencione arriba.

Function perfecha(inicio, fin)
contador = 0
If Month(inicio) <> Month(fin) Then
If Day(inicio) < 19 Then
inicio = CDate("19-" & Month(inicio) & "-" & Year(inicio))
End If
If Day(fin) > 18 Then
fin = CDate("18-" & Month(fin) & "-" & Year(fin))
End If
Else
If Day(inicio) < 19 And Day(fin) > 18 Then
fin = CDate("18-" & Month(fin) & "-" & Year(fin))
End If
End If
perfecha = (fin - inicio) + 1

End Function
  #2 (permalink)  
Antiguo 26/05/2014, 10:04
 
Fecha de Ingreso: mayo-2014
Mensajes: 2
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Calculo de fechas fuera de rango

Ya resolvi el problema, pero ahora quiero saber como puedo convertir estas formulas a Macros vba, ayuda porfas.


Celda B4
Fecha Inicio 17/01/2013

Celda C4
Fecha Final 20/02/2013


CELDA COLUMNA = Periodo Anterior

=ABS(SI(Y(AÑO(C4)=AÑO(B4),MES(B4)=MES(C4)),0,TEXTO (ABS(SUMA(FECHA(AÑO(C4),MES(C4),SUSTITUIR(D$2,">", "")),-SI(DIA(B4)>ABS(SUSTITUIR(D$2,">","")),FECHA(AÑO(C4 ),MES(C4),SUSTITUIR(D$2,">","")),B4))),"d")))

CELDA COLUMNA= Lo que calculo

=SUMA(FECHA(AÑO(C4),MES(C4),SI(DIA(C4)>ABS(SUSTITU IR(F$2,"<","")),SUSTITUIR(F$2,"<",""),DIA(C4))),-FECHA(AÑO(B4),MES(B4),SI(Y(DIA(B4)<ABS(SUSTITUIR(D $2,">","")),NO(Y(MES(B4)=MES(C4),AÑO(B4)=AÑO(C4))) ),SUSTITUIR(D$2,">",""),DIA(B4))),1)

CELDA COLUMNA= Periodo Posterior

=SI(DIA(C4)<ABS(SUSTITUIR(F$2,"<","")),0,SUMA(DIA( C4),-ABS(SUSTITUIR(F$2,"<",""))))

Etiquetas: calculo, fuera, rango, todo
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 14:20.