Partager via


Événement Project.Change (Project)

Se produit lorsqu'une modification est apportée aux données du projet. Une action qui concerne plusieurs éléments en même temps est considérée comme une seule modification.

Syntaxe

expression. Change( _pj_ )

Expression Variable qui représente un objet Project .

Parameters

Nom Requis/Facultatif Type de données Description
Pj Requis Project Projet qui a été modifié.

Valeur renvoyée

Nothing

Remarques

L’événement Change n’a pas lieu pour les actions, telles que le passage d’un affichage à un autre, l’application de filtres, les modifications de mise en forme, etc.

Les événements de projet ne se produisent pas lorsque le projet est incorporé dans un autre document ou une autre application.

Exemple

L’exemple suivant montre comment l’événement ProjectTaskNew peut intercepter les événements au niveau du projet. Dans ce cas, le gestionnaire d’événements App_ProjectTaskNew définit la variable globale ProjTaskNew utilisée par le gestionnaire d’événementsChange. Utilisez du code similaire avec les événements ProjectResourceNew et ProjectAssignmentNew .

  1. Créez un module de classe nommé EventClassModule et insérez le code suivant :
Option Explicit 
Option Base 1 

Public WithEvents App As Application 
Public WithEvents Proj As Project 

Dim NewTaskIDs() As Integer 
Dim NumNewTasks As Integer 

Dim ProjTaskNew As Boolean 

Private Sub App_ProjectTaskNew(ByVal pj As Project, ByVal ID As Long) 
  NumNewTasks = NumNewTasks + 1 

  If ProjTaskNew Then 
      ReDim Preserve NewTaskIDs(NumNewTasks) As Integer 
  Else 
      ReDim NewTaskIDs(NumNewTasks) As Integer 
  End If 

  NewTaskIDs(NumNewTasks) = ID 

  ProjTaskNew = True 
End Sub 

Private Sub Proj_Change(ByVal pj As Project) 
Dim NewTaskID As Variant 

  If ProjTaskNew Then 
      For Each NewTaskID In NewTaskIDs 
          MsgBox "New Task Name: " & ActiveProject.Tasks.UniqueID(NewTaskID).Name 
      Next NewTaskID 

      NumNewTasks = 0 

      ProjTaskNew = False 
  End If 
End Sub
  1. Dans un autre module, insérez le code suivant :
Option Explicit 

Dim X As New EventClassModule 

Sub Initialize_App() 
  Set X.App = MSProject.Application 
  Set X.Proj = Application.ActiveProject 
End Sub
  1. Exécutez la procédure Initialize_App pour démarrer l’audition des événements.

  2. Créez une tâche. Le gestionnaire d’événements entraîne alors l’affichage d’un message contextuel à chaque ajout d’une nouvelle tâche.

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.