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

apaxic Messages postés 4 Date d'inscription samedi 18 juillet 2015 Statut Membre Dernière intervention 21 juillet 2015 - Modifié par ucfoutu le 19/07/2015 à 22:51
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 21 juil. 2015 à 08:56
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

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 juil. 2015 à 12:48
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).
0
apaxic Messages postés 4 Date d'inscription samedi 18 juillet 2015 Statut Membre Dernière intervention 21 juillet 2015
19 juil. 2015 à 20:53
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 19/07/2015 à 22:54
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.
0
apaxic Messages postés 4 Date d'inscription samedi 18 juillet 2015 Statut Membre Dernière intervention 21 juillet 2015
20 juil. 2015 à 07:29
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 juil. 2015 à 09:33
Ce qui veut dire que tu n'as que trois éléments ajoutés et non 4 !
0
apaxic Messages postés 4 Date d'inscription samedi 18 juillet 2015 Statut Membre Dernière intervention 21 juillet 2015
21 juil. 2015 à 07:27
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?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 21/07/2015 à 11:20
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.
0
Rejoignez-nous