Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
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
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.