Exportar la Hoja de Tareas de un documento de Microsoft Project

Necesito su apoyo desarrollando una macro para Microsoft Project que exporte todos los datos de una hoja de tarea, a un nuevo documento de Excel que tenga el mismo contenido y el mismo número de columnas del documentos de project, y el nombre del documento de excel sea el mismo del título del proyecto

1 Respuesta

Respuesta

Pruebe con este código

Sub ExportarTareasAExcel()
    Dim appExcel As Object
    Dim wbExcel As Object
    Dim wsExcel As Object
    Dim t As Task
    Dim i As Integer
    Dim NombreArchivo As String
    Dim NombreProyecto As String
    ' Crea una instancia de Excel
    Set appExcel = CreateObject("Excel.Application")
    appExcel.Visible = True  ' Cambiar a False si no quieres ver Excel durante la ejecución
    ' Crea un nuevo libro de trabajo
    Set wbExcel = appExcel.Workbooks.Add
    Set wsExcel = wbExcel.Worksheets(1)
    ' Obtén el nombre del proyecto
    NombreProyecto = ActiveProject.Name
    ' Configura las columnas en Excel
    With wsExcel
        .Cells(1, 1).Value = "ID"
        .Cells(1, 2).Value = "Nombre de Tarea"
        .Cells(1, 3).Value = "Duración"
        .Cells(1, 4).Value = "Inicio"
        .Cells(1, 5).Value = "Fin"
        .Cells(1, 6).Value = "Asignado a"
    End With
    ' Llena las filas con datos de las tareas
    i = 2
    For Each t In ActiveProject.Tasks
        If Not t Is Nothing Then
            wsExcel.Cells(i, 1).Value = t.ID
            wsExcel.Cells(i, 2).Value = t.Name
            wsExcel.Cells(i, 3).Value = t.Duration
            wsExcel.Cells(i, 4).Value = t.Start
            wsExcel.Cells(i, 5).Value = t.Finish
            wsExcel.Cells(i, 6).Value = Join(t.Assignments, ", ") ' Unir los nombres de recursos asignados
            i = i + 1
        End If
    Next t
    ' Guardar el archivo de Excel con el nombre del proyecto
    NombreArchivo = Application.ActiveProject.Name
    If Right(NombreArchivo, 4) <> ".xlsx" Then
        NombreArchivo = NombreArchivo & ".xlsx"
    End If
    WbExcel. SaveAs Application.GetSaveAsFilename(NombreArchivo, "Excel Files (*.xlsx), *.xlsx")
    ' Cierra Excel
    wbExcel.Close SaveChanges:=False
    appExcel.Quit
    ' Limpia los objetos
    Set wsExcel = Nothing
    Set wbExcel = Nothing
    Set appExcel = Nothing
    MsgBox "Exportación completada. Archivo guardado como " & NombreArchivo
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas