¡Bienvenido! al foro de consultas y comentarios de Ms Project

Envía a imartin@epmconsultores.com a través de mi perfil tus consultas sobre Microsoft Project, Professional, Server, etc ... o bien añade respuestas y comentarios a los temas ya publicados. Ignacio Martín
http://www.epmconsultores.com/cursomicrosoftproject2013.html
http://www.epmconsultores.com/cursomsproject2013.html
http://www.epmconsultores.com/cursodeproject.html


18 octubre 2015

Macro para Exportar los Festivos del Calendario

 
Hola a todos.
 
Después de la versión 2010 de Microsoft Project, no conozco, ni creo que exista una forma directa de imprimir un informe y/o exportación de los días no laborables del calendario de Ms Project. Así que, con las mismas, y debido a diferentes peticiones de los usuarios, he desarrollado una macro que muestra y exporta las excepciones(no laborables) y fines de semana a sendos archivos txt.

Simplemente debes crear una macro vacía en Ms Project con VISTA > Macros > Macros > Ver macros.

Escribes un nombre corto y sin espacios, Festivos por ejemplo, luego pulsas el botón Crear, y a continuación pegas entre las 2 líneas Sub y End Sub el texto de la macro del final de este post:

 
Nota.-

Sub
.
.
.
        pegar aquí todo el texto de la macro literalmente como se muestra más abajo, desde 'Macro        desarrollada... hasta... Exit Sub
.
.
.
End Sub

  

Finalmente Cierras la ventana de edición de la macro(X), y ya puedes ejecutar la macro creada sobre el proyecto activo, con VISTA > Macros > Ver

macros ... Ejecutar. Se mostrará y guardará en 2 archivos txt de C:windows/temp los festivos y fines de semana, respectivamente. También puedes elegir cualquier otro calendario base del proyecto.

 
Saludos.

------------------------------------------------------------

' Macro desarrollada por Ignacio Martín MVP - Octubre 2015
' Genera 2 archivos txt, uno con los Festivos-Excepciones del proyecto activo y otro con los No laborables de fin de semana (Sábados y Domingos no laborables),
' desde principio a fin del proyecto, del calendario elegido. También es aplicable a Calendarios de tareas, no así de Recursos
    Dim desdeFecha, hastaFecha, dia As Date
    Dim Calendario, CalendarioProyecto, Festivos, Finesdesemana As String
     CalendarioProyecto = ActiveProject.Calendar
    Calendario = InputBox("Introduzca el Calendario-base de Festivos a exportar:", , CalendarioProyecto)
    desdeFecha = ActiveProject.ProjectStart
    hastaFecha = ActiveProject.ProjectFinish
    Festivos = "Los siguientes Festivos-Excepciones se han exportado al archivo " & "C:\windows\temp\" & Calendario & " - Excepciones.txt" & vbNewLine & vbNewLine
    Finesdesemana = "Los siguientes Fines de semana se han exportado al archivo " & "C:\windows\temp\" & Calendario & " - Fines de semana.txt" & vbNewLine & vbNewLine
    For dia = desdeFecha To hastaFecha
    On Error GoTo Errores
        With ActiveProject.BaseCalendars(Calendario)
            If .Period(dia).Working = False Then
                If Not .WeekDays(Weekday(dia)).Working Then
                    Finesdesemana = Finesdesemana & Format(dia, "dd.mm.yyyy") & vbNewLine
                    'Si existe el archivo se sobreescribe, si no se crea.
                    Open "C:\windows\temp\" & Calendario & " - Fines de semana.txt" For Output As #1
                    Write #1, Finesdesemana
                    Close #1
                Else
                    Festivos = Festivos & Format(dia, "dd.mm.yyyy") & vbNewLine
                    Open "C:\windows\temp\" & Calendario & " - Excepciones.txt" For Output As #1
                    Write #1, Festivos
                    Close #1
                End If
            End If
        End With
    Next dia
    MsgBox Festivos, vbInformation, "Festivos del Calendario: " & Calendario & "                             "
    MsgBox Finesdesemana, vbInformation, "Fines de Semana del Calendario: " & Calendario & "                                "
   
Errores:
   
      Select Case Err
         Case 1101:
                       
            MsgBox Calendario & ": Nombre de Calendario-base de Proyecto o Tarea inexistente." & vbNewLine & vbNewLine & "Nota.- Solo se exportan Calendarios-base, no de Recursos."
           
      End Select
     
      Exit Sub
 

8 comentarios:

  1. Muy bueno y sencillo!
    ¿Sería posible lo mismo con las work weeks?

    ResponderEliminar
  2. Hola buenas tardes, saludos cordiales quisiera y me pudieran ayudar necesito en ms project obtener las H-H, y no la sumatoria de las H-Hy las H-M ya que ms project suma las dos variables al momento de representar el trabajo en una actividad, quisiera saber si hay manera fe mostrar esos valors por separado ... gracias .....

    ResponderEliminar
  3. Buen día, me dirijo a ustedes para solicitarle el apoyo con respecto a una duda que tengo; y la misma es la siguiente: ¿Cómo haría para crear una macro en Microsoft Project que haga lo siguiente?:
    1. Copie desde Microsoft Project toda la columna o campo llamado “Nombre” (aquellas que tengan alguna descripción de tareas) y la columna o campo llamado “% completado” (asociadas a las tareas descritas), y luego,
    2. Copie esa información en un archivo Excel.
    Esperando su valiosa colaboración me despido.
    Saludos.

    ResponderEliminar
  4. Hola Javier.

    De manera más rápida y sencilla puedes copiar ambas columnas en Ms Project y pegarlas en Excel.

    También puedes utilizar la opción de exportación a través de Guardar como a formato Excel.

    Si finalmente necesitaras desarrollar una macro, te ruego te pongas en contacto por email conmigo para ofrecerte mi colaboración profesional

    Ignacio.mvp@microsoftproject.es

    Saludos.

    ResponderEliminar
  5. Buenas tardes,como haria para modificar el macro para que aparezca la descripción del festivo que va en la columna nombre en la ventana excepciones

    ResponderEliminar
  6. muchas gracias, me fue muy útil

    ResponderEliminar

Introduce aquí tu comentario;