Ayuda funcion contar dias festivos entre dos fecha |
Responder | Página 12> |
Autor | |
AnSanVal
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 16/Marzo/2005 Localización: España Estado: Sin conexión Puntos: 5976 |
Tema: Ayuda funcion contar dias festivos entre dos fecha Enviado: 05/Febrero/2020 a las 23:24 |
Hola seralmo, VBA no es 'VBA y punto'. VBA es Visual Basic para Aplicaciones, pero VBA para Access trabaja de forma diferente que VBA para Excel, cualquiera de los 2 anteriores trabaja diferente que VBA para Power Point, ... etc. Esto es así porque cada aplicación de Office tiene sus propios objetos , que las otras aplicaciones no tienen. Respecto al foro Acces y VBA (comprendo que puede llevar a confusión) se refiere a VBA para Access. En este foro de Excel (aunque no se especifique) se tratan temas tanto de fórmulas como de VBA para Excel, ... Mejor abre una consulta nueva, para no mezclar en el hilo temas diferentes que lleven a confusión, e indica en que rango tienes tus fechas y en que rango tienes los festivos (rangos reales). |
|
Saludos desde Tenerife.
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14738 |
Enviado: 05/Febrero/2020 a las 22:36 |
La pregunta la pones en el apartado de Access y VBA y la solución que has colgado incluye palabras como Cells, Range, xlDown.... que, si bien es VBA, es de Excel, no de Access. Me sorprende bastante que cuelgues una solución que no sabes ni en que programa se ejecuta, simplemente. Muevo el hilo a Excel y lo cierro. Editado por xavi - 05/Febrero/2020 a las 22:37 |
|
seralmo
Nuevo Unido: 31/Enero/2020 Localización: madrid Estado: Sin conexión Puntos: 20 |
Enviado: 05/Febrero/2020 a las 22:28 |
Buenas noches, no entiendo lo que me dices, la pregunta la puse en el apartado de access y vba, y la solucion que he colgado es con codigo vba, no entiendo lo que me dices de Excel, si se puede hacer con Excel genial, pero yo tenia una duda de vba y he puesto la solución en vba, no veo el problema. Un saludo
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14738 |
Enviado: 05/Febrero/2020 a las 22:19 |
Hola,
La pregunta está colgada en el foro de Access y, en consecuencia, has recibido una respuesta adecuada a Access. Ahora cuelgas una solución de Excel... dónde se podría calcular eso sin necesidad de utilizar VBA. En fin... |
|
seralmo
Nuevo Unido: 31/Enero/2020 Localización: madrid Estado: Sin conexión Puntos: 20 |
Enviado: 05/Febrero/2020 a las 10:10 |
Buenos días, os dejo por aquí la solución:
Function CuentaFestivos(FechaInicio As Date, FechaFin
As Date) As Integer Dim
SumaFestivos As Integer Dim I As
Date Dim J As
Integer Dim
UltimaFila As Integer UltimaFila =
Range("A1048576").End(xlUp).Row For I =
FechaInicio To FechaFin If
Weekday(I, vbMonday) > 5 Then 'Fin de semana SumaFestivos = SumaFestivos + 1 Else 'Hay que comprobar si es Festivo en
la lista For J = 2 To
UltimaFila
If Cells(J, 1).Value = I Then
'Existe luego hay que
sumarlo ya que es festivo y no es Sabado ni Domingo SumaFestivos =
SumaFestivos + 1
Exit For
End If Next
J End If Next I
CuentaFestivos = SumaFestivos End Function Function CuentaFestivosII(FechaInicio As Date,
FechaFin As Date) As String Dim SumaFestivos As Integer Dim SumaSabados As Integer Dim SumaDomingos As Integer Dim I As
Date Dim J As
Integer Dim
UltimaFila As Integer UltimaFila =
Range("A1048576").End(xlUp).Row For I =
FechaInicio To FechaFin Select
Case Weekday(I, vbMonday) Case 6 'Sabados SumaSabados = SumaSabados + 1 Case 7 'Domingos SumaDomingos = SumaDomingos + 1 Case Else 'Hay que comprobar si es
Festivo en la lista For J = 2 To
UltimaFila
If Cells(J, 1).Value = I Then
'Existe luego hay que
sumarlo ya que es festivo y no es Sabado ni Domingo SumaFestivos
= SumaFestivos + 1
Exit For
End If Next
J End
Select Next I CuentaFestivosII = SumaSabados & "
Sábados, " & SumaDomingos & " Domingos y " &
SumaFestivos & " Festivos" End Function |
|
seralmo
Nuevo Unido: 31/Enero/2020 Localización: madrid Estado: Sin conexión Puntos: 20 |
Enviado: 02/Febrero/2020 a las 12:06 |
Con el detalle me refiero a que la función tiene que devolver en la celda el detalle de los dias festivos que se comprenden entre esa fecha, es decir x domingos, y sabados y z festivos.
|
|
rokoko
Colaborador Unido: 16/Febrero/2008 Localización: Pamplona Estado: Sin conexión Puntos: 3063 |
Enviado: 02/Febrero/2020 a las 12:03 |
El detalle a que llamas?? el resultado de esa funcion?? no acabo de entenderte.....
|
|
seralmo
Nuevo Unido: 31/Enero/2020 Localización: madrid Estado: Sin conexión Puntos: 20 |
Enviado: 02/Febrero/2020 a las 09:50 |
No, he conseguido realizar la funcion primera, es decir obtener el total de sabados y domingos entre dos fechas incluidos los dias festivos de la tabla. Ahora necesito el detalle.
|
|
rokoko
Colaborador Unido: 16/Febrero/2008 Localización: Pamplona Estado: Sin conexión Puntos: 3063 |
Enviado: 02/Febrero/2020 a las 08:33 |
Has conseguido que por separado te de los resultados que quieres??
Si es asi solo tendrias que asignar esos resultados a un cuadro de texto.... Algo asi. Me.nombrecuadrotexto= la funcion ... O Guardar el resultado de la funcion en una variable y me.nombrecuadrotexto= la varibla |
|
seralmo
Nuevo Unido: 31/Enero/2020 Localización: madrid Estado: Sin conexión Puntos: 20 |
Enviado: 02/Febrero/2020 a las 03:11 |
Buenas noches ya he conseguido con vuestra ayuda incluir mi tabla de festivos. Ahora necesito una funcion que me detalle los dias festivos entre la fecha inicio y la fecha fin. Es decir que en la celda me aparezca por ejemplo 11 sabados 12 domingos 1 festivo. Me podeis ayudar con esta funcion? Muchas gracias
|
|
seralmo
Nuevo Unido: 31/Enero/2020 Localización: madrid Estado: Sin conexión Puntos: 20 |
Enviado: 01/Febrero/2020 a las 20:13 |
Buenas, la función para sacar los sábados y domingos ya me la puso xavi mas arriba, lo que necesito y sigo indagando es como incluir el listado de 10 festivos que tengo. Por otro lado no consigo sacar la función donde se detalle con números y palabras el numero de festivos como puse en el ejemplo (32 sabados, 33 domingos y 3 festivos). Eso es lo que necesito, pero vamos estoy superagradecido por la ayuda que me estáis facilitando todos. Este foro es fantastico para ayudar y que te ayuden, y para seguir aprendiendo dia a dia este lenguaje maravilloso a la par que complicado que es VBA.
|
|
rokoko
Colaborador Unido: 16/Febrero/2008 Localización: Pamplona Estado: Sin conexión Puntos: 3063 |
Enviado: 01/Febrero/2020 a las 18:20 |
Con lo que te he puesto justo arriba(ContaSabados) tienes sabados, para domingos la modificas. Para festivos con un DCount que ataque a la tabla donde guardas los festivos...pero lo dejo para que indages...a mi ya me a salido.
|
|
rokoko
Colaborador Unido: 16/Febrero/2008 Localización: Pamplona Estado: Sin conexión Puntos: 3063 |
Enviado: 01/Febrero/2020 a las 17:22 |
http://sqlraipon.blogspot.com/2018/03/calculo-de-dias-laborables-entre-fechas_20.html o https://www.maximoaccess.com/t11173-resolvidocontar-sabados-entre-duas-datas Public Function ContaSabados(DataInicio As Date, DataFim As Date) As Long
'By JPaulo ® Maximo Access Dim ContaDias As Long Dim PercorreDatas As Date Dim inConta As Long ContaDias = 0 For PercorreDatas = DataInicio To DataFim inConta = Weekday(PercorreDatas) '1-Domingo 7-Sábado If inConta = 7 Then ContaDias = ContaDias + 1 End If Next PercorreDatas ContaSabados = ContaDias MsgBox ContaSabados Editado por rokoko - 01/Febrero/2020 a las 17:34 |
|
emiliove
Administrador Unido: 16/Junio/2009 Localización: Mexico Estado: Sin conexión Puntos: 5694 |
Enviado: 01/Febrero/2020 a las 14:54 |
seralmo
Nuevo Unido: 31/Enero/2020 Localización: madrid Estado: Sin conexión Puntos: 20 |
Enviado: 01/Febrero/2020 a las 12:57 |
Buenas, lo que necesito es incluir en el contador de festivos (sábado y domingos) que hay entre el 01/01/2017 y el 31/12/2017 el festivo 01/01/2019 y sucesivos y después sacar en otra función el detalle de los sábados y domingos y numero de festivos, como por ejemplo 43 sábados, 44 domingos y 4 festivos. Gracias
|
|
Responder | Página 12> |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |