1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
Sub TaskHierarchy()
Dim xlApp As Excel.Application, XlRange As Excel.Range
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim Proj As Project, NomL As String, NomR As String
Dim t As Task, Ligne As Integer, i As Integer
Dim Asgn As Assignment, Res As Resource
Dim ColumnCount, Columns, Tcount As Integer
On Error Resume Next
AppActivate "Microsoft Excel"
Set xlApp = GetObject(, "Excel.Application")
'Récupération du classeur par défaut
Set xlBook = xlApp.ActiveWorkbook
'Récupération de la feuille par défaut
Set xlSheet = xlBook.Worksheets("planing.mpp")
Set XlRange = xlApp.Range("a1")
XlRange.Range("a1").Select
'besoin du nombre de colonnes dans Excel (égal à la plus grande valeur du code
'hiérarchique
ColumnCount = 0
For Each t In ActiveProject.Tasks
If Not t Is Nothing Then
If t.OutlineLevel > ColumnCount Then
ColumnCount = t.OutlineLevel
End If
End If
Next t
'Défini la zone de cellule pour écrire la première cellule
Set xlRow = xlApp.ActiveCell
xlRow = xlRow
xlRow = "Filename: " & ActiveProject.Name
dwn 1 'utilise la routine dwn définie plus bas
xlRow = "OutlineLevel"
dwn 1
'Création des labels de colonnes
For Columns = 1 To (ColumnCount + 1)
Set xlCol = xlRow.Offset(-1, Columns - 1)
xlCol = Columns - 1
Next Columns
rgt 1 'utilise la routine rgt définie plus bas
'Entêtes des colonnes
xlCol = "Formateur"
rgt 1
xlCol = "Durée"
rgt 1
xlCol = "Date de Début"
rgt 1
xlCol = "Date de Fin"
rgt 1
xlCol = "Initiale formateur"
rgt 1
xlCol = "Lieu"
rgt 1
Tcount = 0
For Each t In ActiveProject.Tasks
If Not t Is Nothing Then
Set xlCol = xlRow.Offset(0, t.OutlineLevel)
xlCol = t.Name
If t.Summary Then
xlCol.Font.Bold = True
End If
For Each Asgn In t.Assignments
dwn 1
Set xlCol = xlRow.Offset(-1, Columns - 1)
xlCol = Asgn.ResourceName ' exporte le nom de la ressource
rgt 1
xlCol = (Asgn.Work / 60) 'exporte la durée de la tâche
rgt 1
xlCol = Asgn.Start 'exporte la date de début
rgt 1
xlCol = Asgn.Finish 'exporte la date de fin
rgt 1
xlCol = Asgn.Resource.Initials 'exporte le nom abréger de la ressource
rgt 1
xlCol = Asgn.Text2 'devrait exporter le lieux mais Text2 reste désespérément vide alors que la cellule est renseignée
rgt 1
Next Asgn
Tcount = Tcount + 1
End If
Next t |
Partager