Lister éléments champ personnalisé VBA/Microsoft Project

Signaler
Messages postés
4
Date d'inscription
samedi 18 juillet 2015
Statut
Membre
Dernière intervention
21 juillet 2015
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,
Je réalise actuellement une macro pour Microsoft project.
Ma première question est la suivante : j'ai sur mes taches ajouté des champs personnalisé dont un s'appelant "SAP activity type", j'aimerai avoir accès à la valeur qu'il contient mais je ne trouve pas l'appel à faire sur ma tache pour obtenir cette valeur.

Ma deuxième question s'apparente plus à un problème. J'ai une tache t qui possède 4 prédécesseurs. Lorsque j'appelle t.Predecessors j'ai bien dans ma chaine de caractères les 4 prédécesseurs, mais t.PredecessorTasks ne me renvoie que trois taches. Pourquoi? Y a-t'il un problème avec cette dernière méthode?

Merci de votre attention !

7 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,
Tu exposes ici deux problèmes totalement distincts.
Dis-nous donc, après avoir relu les règles de ce forum, lequel des deux tu retiens pour la présente discussion (nous supprimerons l'autre).
Messages postés
4
Date d'inscription
samedi 18 juillet 2015
Statut
Membre
Dernière intervention
21 juillet 2015

Bonjour,
Je m'excuse pour le mauvaise énoncé et je vous demande donc si vous auriez une idée pour le problème suivant :
"J'ai une tache t qui possède 4 prédécesseurs. Lorsque j'appelle t.Predecessors j'ai bien dans ma chaine de caractères les 4 prédécesseurs, mais t.PredecessorTasks ne me renvoie que trois taches. Pourquoi? Y a-t'il un problème avec cette dernière méthode?"
Merci
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
par quel code le détermines-tu ?
Je ne connais personnellement rien de MS PROJECT. Mais il semble qu'il utilise VBA. Dans une telle logique, PredecessorTasks serait donc une collection propriété de ta variable t
Et donc, toujours dans CETTE logique et ces hypothèses, le compte toto des éléments de cette collection pourrait être ainsi fait :
For Each machin In t.PredecessorTasks
toto = toto + 1
Next machin

Encore que : je me demande bien évidemment si toto ne serait pas également retourné par : t.PredecessorTasks.count
Une autre fois : je n'en sais rien, ignorant tout de MS Project (mais toi, par contre, tu l'utilises et dois donc être à même de vérifier cela simplement).

EDIT j'ai modifié ton titre (un titre doit résumer un problème et non simplement se référer à un logiciel). Je l'ai fait "à peu près", puisque ne connaissant ni MS Project, ni ton appli. Si ma modif ne convient pas, dis-nous ce qu'elle doit être (je modifierai à nouveau).
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Messages postés
4
Date d'inscription
samedi 18 juillet 2015
Statut
Membre
Dernière intervention
21 juillet 2015

Je le détermine par t.PredecessorTasks.Count qui me donne 3, puis ensuite je fais une boucle for each sur ma collection t.PredecessorTasks et je peux voir qu'il y a bien 3 éléments.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Ce qui veut dire que tu n'as que trois éléments ajoutés et non 4 !
Messages postés
4
Date d'inscription
samedi 18 juillet 2015
Statut
Membre
Dernière intervention
21 juillet 2015

Non j'en ai 4, là est mon problème !
Avec Msp et la méthode t.Predecessors (qui renvoie une string, c'est la raison pour laquel cette méthode est inutilisable dans mon but) je vois bien les 4 taches prédécesseurs.
Mais t.PredecessorTask lui ne m'en montre que 3.

Je pense qu'il doit s'agir d'un problème de portée de ma macro, elle ne doit pas avoir accès à toutes les taches prédécesseurs... Est ce possible?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Par quel code as-tu ajouté tes taches à la collection t.PredecessorTasks
Car c'est cette collection, qui est concernée.
Il est à peu près certain (c'est en tout état de cause ce que je devine), que tu n'as ajouté que trois tâches à CETTE collection.
Montre ce code (un copié/collé)
EDIT : et pendant que tu y es : montre-nous également ta "chaîne" Predecessors.
Pour être certain de ce qu'elle est parfaitement exacte, fais-la précéder et suivre d'un tiret ===>>>
Msgbox "-" & t.predecessors" & "-"
Et montre-nous ce qui s'affiche, sauts de lignes et espaces éventuels inclus.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.