Partager via


Méthode Application.ChangeColumnDataType (Project)

Change le type de données d’une colonne de champ local personnalisé dans une table.

Syntaxe

expression. ChangeColumnDataType( _Type_, _Column_ )

Expression Expression qui renvoie un objet Application .

Parameters

Nom Requis/Facultatif Type de données Description
Type Requis PjFieldTypes Spécifie le type des données de champ personnalisées. La valeur peut être l’une des constantes PjFieldTypes . La valeur par défaut est 0 (pjCostField).
Colonne Facultatif Variant Définit l’emplacement absolu de la colonne. Une valeur de 0 modifie le type de données d’une colonne dans la position la plus à gauche, si cette colonne est un champ local personnalisé. Si la première colonne est verrouillée, la position la plus à gauche est la première colonne après la colonne verrouillée. La valeur par défaut est la colonne sélectionnée.

Valeur renvoyée

Boolean

Remarques

ChangeColumnDataType requiert une colonne de champ personnalisé pour être sélectionné. Pour modifier manuellement le type de données d’une colonne de champ personnalisé, ajoutez une colonne de champ personnalisé à un tableau dans un affichage, cliquez avec le bouton droit sur l’en-tête de la colonne, puis cliquez sur Type de données.

Exemple

Pour utiliser l’exemple suivant, créez un projet avec plusieurs tâches, puis ouvrez la vue Diagramme de Gantt. La macro CreateTestTable crée une table de tâches comportant quatre colonnes. La première colonne, contenant le champ d’identificateur, est verrouillée. La seconde colonne est nommée Nom de la tâche, la troisième colonne contient le champ de tâche personnalisé Text1, et la quatrième colonne contient le champ personnalisé Number1. La macro affecte la table à l’affichage actif, puis ajoute les valeurs de texte et de nombre aux champs de tâches personnalisés.

  1. Exécutez la macro CreateTestTable. La valeur de champ personnalisé Text1 de la première tâche est 42 X.

  2. Exécutez la macro SwitchNumberAndText. La macro fait basculer les en-têtes et les types des deux champs personnalisés.

    Remarque

Étant donné que la valeur du champ personnalisé Text1 dans la première tâche est 42 X, lorsque ChangeColumnDataType tente de convertir cette colonne en champ personnalisé Number1 , Project affiche une boîte de dialogue d’erreur avec le message : La conversion de ces données entraîne des erreurs. Le contenu de 1 enregistrement sera supprimé. Tu veux quand même continuer ? 3. Pour poursuivre la conversion, cliquez sur Oui dans la boîte de dialogue d’erreur. Lorsque le champ personnalisé Text1 est remplacé par le champ personnaliséNumber1, la valeur 42 X est remplacée par la valeur 0.

  1. Pour revenir à une table standard dans l’affichage Diagramme de Gantt, cliquez avec le bouton droit sur la cellule Sélectionner tout (la cellule sans titre affichée dans le coin supérieur gauche de la table), puis sélectionnez une autre table dans la liste déroulante.
Sub CreateTestTable() 
    Dim t As Task 
    Dim n As Integer 
 
    TableEditEx Name:="Task Test Table", TaskTable:=True, Create:=True, FieldName:="ID", _ 
        Width:=5, ShowInMenu:=True, HeaderAutoRowHeightAdjustment:=True, _ 
    ShowAddNewColumn:=False 
 
    TableEditEx Name:="Task Test Table", TaskTable:=True, NewFieldName:="Name", Title:="Task Name" 
    TableEditEx Name:="Task Test Table", TaskTable:=True, NewFieldName:="Text1" 
    TableEditEx Name:="Task Test Table", TaskTable:=True, NewFieldName:="Number1" 
    TableEditEx Name:="Task Test Table", TaskTable:=True, LockFirstColumn:=True 
 
    TableApply Name:="Task Test Table" 
 
    n = 42 

    For Each t In ActiveProject.Tasks 
        If n = 42 Then 
            t.Text1 = CStr(n) & " X" 
        Else 
            t.Text1 = CStr(n) 
        End If 
 
        t.Number1 = n 
        n = n + 2 
    Next t 
End Sub 
 
Sub SwitchNumberAndText() 
    SelectTaskColumn Column:="Number1" 
    ChangeColumnDataType Type:=pjTextField 
 
    SelectTaskColumn Column:="Text1" 
    ChangeColumnDataType Type:=pjNumberField 
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.