Logo_Access_global_380x114Favicon_Access_global_180x180Logo_Access_global_380x114Logo_Access_global_380x114
  • Home
  • University
    • Destellos formativos
  • Labs
  • TV
  • Secciones
    • El mundo de Access
    • Explorando VBA
      • Artículos sobre VBA
      • Un trocito de código
    • Entrevistas
      • Profesionales de Access
    • El rincón de Excel
    • Bases de datos
      • MS SQL
      • MySQL
      • postgreSQL
      • SQLite
    • Clases magistrales
    • Utilidades hechas con Access
  • Access en el mundo
  • ¿Quiénes somos?
  • Cómo colaborar
  • Eventos
✕
            No hay resultados Mostrar todos los resultados
            VBA: ¿Sigue siendo útil GoSub–>Return?
            26/01/2022
            Establecer una cuenta personalizada en un nuevo mensaje de correo de outlook
            27/01/2022
            Mostrar todos

            Conocer el último día de un mes

            Publicado por Rafael Andrada
            Categorías
            • Un trocito de código
            Etiquetas
            • días
            • Fecha
            • último día mes
            • VBA

            Conocer el último día de un mes según los argumentos pasados.


            Nivel: Medio

            ¿Cómo funciona?
            Pasando a la función una fecha obtendremos el último día del mes anterior a posterior según el intervalo indicado.

            Código:
            Public Function mcdtmFindDateLastDayofMonth(ByVal dtmDateSearched As Date, ByVal intMonthsInterval As Integer) As Date
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Fuente            : https://access-global.net/conocer-el-ultimo-dia-de-un-mes-mcdtmfinddatelastdayofmonth/
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Título            : mcdtmFindDateLastDayofMonth.
            ' Autor original    : http://support.microsoft.com/kb/103184/es (FindEOM Function: This function takes a date as an argument and returns the last day of the month.
            ' Adaptado por      : Rafael Andrada .:McPegasus:. | BeeSoftware.
            ' Actualizado       : 14/03/2014.
            ' Propósito         : Conocer el último día de un mes según los argumentos pasados.
            ' Retorno           : Una fecha que corresponde a la última del mes según los argumentos pasados.
            ' Argumento/s       : La sintaxis del procedimiento o función consta de/los siguiente/s argumento/s:
            '                     Parte                 Modo           Descripción
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            '                     dtmDateSearched       Obligatorio     El valor Date especifica la fecha desde la que se parte para conseguir el último día del mes en caso de bytMesesIntervalo = 1.
            '                     intMonthsInterval     Obligatorio     El valor Byte especifica el contiene el intervalo de tiempo en meses que se desea agregar o disminuir.
            '                     intMonthsInterval     Opciones        En caso de 0 retorna el último día del mes anteior. Si se desea el último día del mes actual el valor es 1.
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            'Test:              : Para adaptar este código en tu aplicación puedes basarte en este procedimiento test. Copiar todo el procedimiento desde el Sub hasta el End Sub
            '                     al portapapeles y pega en el editor de VBA de tu aplicación MS Access. Descomentar todas las líneas que nos interese (se aconseja seleccionar
            '                     todas las líneas del ejemplo y utilizar el botón 'Bloque sin comentarios' de la barra de herramientas 'Edición').
            '                     Pulsar F5 para ver su funcionamiento.
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            'Test:              : Para adaptar este código en tu aplicación puedes basarte en este procedimiento test. Copiar el bloque siguiente al
            '                     portapapeles y pega en el editor de VBA. Descomentar la línea que nos interese y pulsar F5 para ver su funcionamiento.
            '
            'Sub mcdtmFindDateLastDayofMonth_test()
            '    Debug.Print mcdtmFindDateLastDayofMonth(Date, 2)
            '
            'End Sub
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            'End Function
            '-----------------------------------------------------------------------------------------------------------------------------------------------      
            
                Dim dtmEndOfMonth                           As Date             'Para conocer el mes siguiente según los parámetros introducidos.
                Dim dtmNextMonth                            As Date             'Para conocer el último día del mes según los parámetros introducidos.
            
            
                dtmNextMonth = DateAdd("m", intMonthsInterval + 1, dtmDateSearched)     '27/12/2022 = ("m", 11, 27/01/2020)
                dtmEndOfMonth = dtmNextMonth - DatePart("d", dtmNextMonth)              '30/11/2022 = 27/12/2022 - ("d", 27/12/2022) -> 31/03/2020 = 27/12/2022 - 27
                mcdtmFindDateLastDayofMonth = dtmEndOfMonth
            
            End Function
            Ver en el repositorio
            Compartir
            3
            Rafael Andrada
            Rafael Andrada

            Entradas relacionadas

            19/03/2023

            Función que convierte cualquier carácter a texto puramente ASCII (Access VBA)


            Leer más
            24/03/2022

            Obtener la fecha del primer día de la semana o último día de la semana en Access VBA


            Leer más
            11/03/2022

            Actualizar una conexión ODBC en tiempo de ejecución


            Leer más

            2 Comments

            1. Karl Donaubauer dice:
              28/01/2022 a las 9:50 am

              ¡Hola!

              También puedes obtener el último día del mes con una sola línea:

              DateSerial(Year(TuFecha),Month(TuFecha)+1,0)

              Está en mi página de preguntas frecuentes desde hace ~20 años, pero sólo en alemán e italiano: 😉 https://www.donkarl.com/it?FAQ2.8

              Servus
              Karl

              Responder
            2. Luis Viadel Pruñonosa dice:
              31/01/2022 a las 7:34 am

              Hi Karl,
              We don’t speak German, but I thank you in English. Excellent contribution.

              Responder

            Deja una respuesta Cancelar la respuesta

            Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

            ETIQUETAS

            Access API Application Collection ComboBox Consultas CountOfLines CStr Date DCount Diseño DoCmd Excel Execute Fecha FileSystemObject Filtros For Each...Next Formulario Formularios Funciones Funciones de dominio GetFolder Informes InStr Kill Left Listbox Mid Node ProcCountLines ProcOfLine References Replace Ribbon Right RunCommand Split Tempvars TreeView TwipsFromFont VBA VBE VBIDE WizHook

            ÚLTIMAS ENTRADAS

            • 0
              VBA: datos de Windows
              27/11/2023
            • 0
              VBA: Buscar acentos
              23/11/2023

            ¿QUIERES PUBLICITAR TU EMPRESA AQUÍ?

            SUSCRÍBETE A NUESTRO
            NEWSLETTER

            Recibirás información puntual sobre el mundo de Access y VBA

            ¡Próximamente!

            Promovemos el uso de Access y de la programación en VBA en todo el mundo

            Centro de conocimiento


            Toda la sabiduría de los mejores programadores de Access y VBA a tu alcance.

            Legal

            Política de privacidad

            Condiciones de uso

            Condiciones del redactor

            ®Access Global 2021 | All right reserved
                      No hay resultados Mostrar todos los resultados