Événement Application.ProjectBeforeTaskChange (Project)
Se produit avant que l'utilisateur ne change la valeur d'un champ de tâche.
Syntaxe
expression. ProjectBeforeTaskChange
( _tsk_
, _Field_
, _NewVal_
, _Cancel_
)
expressionUne variable qui représente un objetApplication.
Paramètres
Nom | Requis/Facultatif | Type de données | Description |
---|---|---|---|
Tsk | Requis | Tâche | Tâche dont le champ est modifié. |
Champ | Obligatoire | Long | Champ modifié. Si l'utilisateur modifie plusieurs champs, l'événement est déclenché pour chacun d'eux. Il peut s’agir de l’une des constantes PjField . |
NewVal | Requis | Variant | Nouvelle valeur pour le champ spécifié par Champ. |
Cancel | Obligatoire | Booléen | False lorsque l'événement se produit. Si la procédure événementielle affecte la valeur True à cet argument, la valeur du champ spécifié par Field reste inchangée. |
Remarques
Les événements de projet ne se produisent pas lorsque le projet est incorporé dans un autre document ou une autre application.
L’événement ProjectBeforeTaskChange ne se produit pas lorsque des données chronologiques ou des données de contrainte dans le formulaire détaillé de tâche sont modifiées, lorsqu’une tâche est fractionnée via la manipulation de sa barre de tâche dans le Diagramme de Gantt, lorsque des modifications sont apportées au niveau ou au numéro hiérarchiques, lorsqu’une planification initiale est enregistrée ou effacée, lorsqu’une ligne entière de tâches est collée, pendant les opérations sur les listes de ressources, lors de l’insertion ou de la suppression d’un sous-projet ou lorsque des modifications ont été apportées à l’aide d’un formulaire personnalisé. Pour accéder à des informations supplémentaires et consulter un exemple de code de création et de test d’un gestionnaire d’événements, voir Utilisation des événements avec les objets Application et Project.
Exemple
L’exemple suivant indique à l’utilisateur quand la durée d’une tâche augmente et de combien. Cet exemple requiert un nouveau module de classe et du code supplémentaire pour fonctionner.
Private Sub App_ProjectBeforeTaskChange(ByVal tsk As Task, ByVal Field As PjField, _
ByVal NewVal As Variant, Cancel As Boolean)
Dim TaskDuration As Long
TaskDuration = Val(NewVal) * 480 ' Convert days to minutes
If Field = pjTaskDuration And TaskDuration > tsk.Duration Then
If (TaskDuration - tsk.Duration) \ 480 < 1 Then
MsgBox "The task " & Chr$(34) & tsk.Name & Chr$(34) & " is now " & _
(TaskDuration - tsk.Duration) / 480 & (TaskDuration - tsk.Duration) \ 480 & _
" day(s) longer."
Else
MsgBox "The task " & Chr$(34) & tsk.Name & Chr$(34) & " is now " & _
(TaskDuration - tsk.Duration) / 480 & " day(s) longer."
End If
End If
End Sub
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.