** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Ayuda funcion contar dias festivos entre dos fecha
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoAyuda funcion contar dias festivos entre dos fecha

 Responder Responder Página  <12
Autor
Mensaje
seralmo Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 31/Enero/2020
Localización: madrid
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje 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


Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Enlace directo a este mensaje 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...


Xavi, un minyó de Terrassa

Mi web
Arriba
seralmo Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 31/Enero/2020
Localización: madrid
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje 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
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Enlace directo a este mensaje 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
Xavi, un minyó de Terrassa

Mi web
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5970
Enlace directo a este mensaje 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.
Arriba
 Responder Responder Página  <12
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable