Objet ReportTable (Project)

Représente une forme sous forme de tableau dans un rapport de projet.

Remarques

Remarque

L’enregistrement des macros pour l’objet ReportTable n’est pas implémenté. Autrement dit, lorsque vous enregistrez une macro dans Project et ajoutez ou modifiez manuellement une table de rapports ou modifiez des éléments de tables, les étapes d’ajout et de manipulation de la table de rapports ne sont pas enregistrées.

L’objet ReportTable est une sorte d’objet Shape ; il n’est pas lié à l’objet Table . Project a une prise en charge VBA limitée pour les tableaux de rapport ; Pour spécifier les champs de table, vous devez utiliser manuellement le volet Office Liste des champs (voir figure 1). Pour afficher ou masquer le volet Office Liste des champs , cliquez sur la commande Données de table dans l’onglet CRÉATION sous OUTILS DE TABLE sur le ruban. Pour spécifier la disposition du tableau ou les propriétés de conception, vous pouvez utiliser l’onglet Création et l’onglet Mise en page du ruban.

Vous pouvez mettre à jour la requête de données associée à une table d’état à l’aide de la méthode UpdateTableData . Pour obtenir le texte dans une cellule de tableau, utilisez la méthode GetCellText .

Pour créer par programme un tableau de rapport, utilisez la méthode Shapes.AddTable . Pour renvoyer un objet ReportTable , utilisez Shapes(Index).Table, où Index correspond au nom ou au numéro d’index d’une forme.

Exemple

La macro TestReportTable crée un rapport nommé Table Tests, puis crée un objet ReportTable .

Sub TestReportTable()
    Dim theReport As Report
    Dim theShape As Shape
    Dim theReportTable As ReportTable
    Dim reportName As String
    Dim tableName As String
    Dim rows As Integer, columns As Integer, left As Integer, _
        top As Integer, width As Integer, height As Integer    
    rows = 3
    columns = 4
    left = 20
    top = 20
    width = 200
    height = 100
    
    reportName = "Table Tests"
    tableName = "Basic Project Data Table"
    
    Set theReport = ActiveProject.Reports.Add(reportName)
    
    ' Project ignores the NumRows and NumColumns parameters when creating a ReportTable.
    Set theShape = theReport.Shapes.AddTable( _
        rows, columns, left, top, width, height)
    
    theShape.Name = tableName
    
    Set theReportTable = theShape.Table
    
    With theReportTable
        Debug.Print "Rows: " & .RowsCount
        Debug.Print "Columns: " & .ColumnsCount
        Debug.Print "Table contents:" & vbCrLf & .GetCellText(1, 1)
    End With
End Sub

Dans la figure 1, l’objet ReportTable supérieur du rapport Tests de table est créé par la macro TestReportTable . Lorsque vous créez le tableau pour la première fois, il comporte une ligne et une colonne ; les paramètres NumRows et NumColumns de la méthode AddTable n’ont aucun effet. Le nombre de lignes et de colonnes de la table est mis à jour lorsque vous ajoutez manuellement des champs à la table à partir du volet Office Liste des champs ou lorsque vous utilisez la méthode UpdateTableData . Vous pouvez filtrer les champs pour limiter le nombre de lignes. La macro TestReportTable écrit ce qui suit dans la fenêtre Immediate de VBE :

Rows: 1
Columns: 1
Table contents:
Use the Table Data taskpane to build a table

L’objet ReportTable inférieur de la figure 1 est la table de rapport par défaut créée par Project lorsque vous sélectionnez Table sous l’onglet CRÉATION sous OUTILS RAPPORT. Il affiche le nom du projet, la date de début, la date de fin et le pourcentage d’achèvement de la tâche récapitulative du projet (ID de tâche = 0).

Figure 1. L’objet ReportTable nécessite une modification manuelle pour ajouter des champs et modifier la mise en forme

L’objet ReportTable nécessite une édition manuelle Pour supprimer un objet ReportTable , utilisez la méthode Shape.Delete , comme dans la macro suivante :

Sub DeleteTheReportTable()
    Dim theReport As Report
    Dim theShape As Shape
    Dim reportName As String
    Dim tableName As String
    
    reportName = "Table Tests"
    tableName = "Basic Project Data Table"
    
    Set theReport = ActiveProject.Reports(reportName)
    Set theShape = theReport.Shapes(tableName)
    
    theShape.Delete
End Sub

Pour supprimer l’intégralité du rapport, passez à une autre vue, comme dans la macro suivante :

Sub DeleteTheReport()
    Dim i As Integer
    Dim reportName As String
    
    reportName = "Table Tests"
    
    ' To delete the active report, change to another view.
    ViewApplyEx Name:="&Gantt Chart"
    
    ActiveProject.Reports(reportName).Delete
End Sub

Méthodes

Nom
GetCellText
UpdateTableData

Propriétés

Nom
ColumnsCount
RowsCount

Voir aussi

Objet Report

Objet Shape

Objet Chart

Propriété Chart.DataTable

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.