Partager via


Objet ReportTable (Project)

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

Remarques

Remarque

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

L’objet ReportTable est un type d’objet Shape ; il n’est pas lié à l’objet Table. Project a une prise en charge limitée de VBA pour les tables de rapport ; pour spécifier les champs de table, vous utilisez manuellement le volet Office Liste de champs (voir figure 1). Pour afficher ou masquer le volet Office Liste de champs, choisissez la commande Données du tableau sous 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 DISPOSITION du ruban.

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

Pour créer un ReportTable par programmation, utilisez la méthode Shapes.AddTable . Pour renvoyer un objet ReportTable , utilisez Shapes(Index).Table, où Index est le nom ou le numéro d’index d’une forme.

Exemple

La macro TestReportTable crée un rapport nommé Tests de table, 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 la table pour la première fois, elle 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 dans la table est mis à jour lorsque vous ajoutez manuellement des champs à la table à partir du volet Office Liste de 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 Exécution 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 choisissez 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 modification 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’ensemble du rapport, remplacez par 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

Chart.DataTable, propriété

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.