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
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
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.