logo gestiondeprojet.com le site de la gestion de projet 
Bienvenu(e)! Identification Créer un nouveau profil

Recherche avancée

visual basic

Envoyé par Anthony 
visual basic
mardi 18 mai 2004 08:45:59
je voudrais écrire un progamme en VB donnant une couleur à ma barre de gantt en fonction du nom de ma ressource!

merci de me donner un coup de main car je ne vois pas comment faire

merci d'avance

Re: visual basic
mardi 18 mai 2004 17:08:43
c'est assez chaud ce que tu veux: pas forcément au niveau de la difficulté à coder cela, mais ça risque d'être long, long et trop long.

tu sais que sous project tu peux changer la couleur de n'importe quelle barre?

je te conseille cette solution...
Re: visual basic
mercredi 19 mai 2004 01:28:14
Bonjour Anthony,

voici un exemple _pédagogique_ de fonction VBA qui fait ce que vous demandez. Je l'ai tester avec un projet de 32 tâches et 19 ressources et ça fonctionne très bien! :)

Il est possible que ce code ait des bugs car je l'ai fait en quelques minutes, mais je suis certain que vous trouverai ceux-ci et que vous saurez vous débrouiller pour faire fonctionner le tout comme vous avez besoins.

'Summary:
' Assigne une couleur selon la ressource
'Note:
' Ce n'est qu'un exemple pedagogique.
'Author:
' Alexandre Leclerc
Sub ColorerGanttSelonRessource()
Dim n As Integer
'boucle dans toutes les taches du projet
For n = 1 To ThisProject.Tasks.Count
's'il y a une ressource d'assignee
If ThisProject.Tasks(n).Resources.Count >= 1 Then
'je donne une couleur en fonction du numéro de ma ressource
'l'ideal serait de faire une table de couleur RGB desirees mais pour
'le moment, comme exemple, nous donnons la couleur associee au numero
'de l'ID de la ressource.
'donc, pour la tache TaskID:=x, je donne la couleur MiddleColor:=y
GanttBarFormat TaskID:=ThisProject.Tasks(n).ID, MiddleColor:=ThisProject.Tasks(n).Resources(1).ID
End If
Next n
End Sub

Bien à vous.
Re: visual basic
mercredi 19 mai 2004 08:24:58
Merci pour vos messages!
mais est ce que cela marche si mes ressources s'appellent par exemple "BEM", "BEE" etc...?

OU peut t'on trouver la définition de chaque code en VB, autre que l'aide de project.

Merci d'avance

Re: visual basic
mercredi 19 mai 2004 14:36:14
Bonjour Anthony,

Pour ce qui est de l'aide, j'utilise uniquement l'aide de VBA (il faut l'installer à part, avec le CD de Project... elle ne l'est pas par défaut.) Toute l'information nécessaire à un programmeur se trouve la. (J'avais une version XP de Project - 2004.)

Pour ce qui est du nom de la ressource, l'exemple précédent utilise l'ID de la ressource. C'est le même qui est affiché dans le tableau des ressources, donc unique à chaque ressources. Vous pourriez utiliser le nom avec "Resources(1).Name" je crois... (je n'ai actuellement pas Project pour vérifier.)
visual basic couleur de gantt
vendredi 21 mai 2004 09:00:29
je cherche à attribuer une couleur à la barre de gantt en fonction de la ressource qui lui est attribué dans mon cas BEM, BEE, MM, ect...
j'ai écris ceci dans VB:
sub
dim n as interger
for n=1 to thisproject.tasks.count
if thisproject.tasks(n).resources(BEM).name then
middlecolor:=thisproject.tasks(n).resources(1).id
end if
next n
end
sub
ça ne marche pas mais VB ne m'indique pas de problème
si vous avez une idée merci de me la donner car cela me pose beaucoup de problèmes
merci d'avance

Il y a quelques petites erreures que voici:

Erreur: "Sub"
Raison: Il faut un nom de procédure
Correction: "Sub AjusterCouleur" par exemple

//

E: "if thisproject.tasks(n).resources(BEM).name then"
R: il faut boucler dans la liste des ressources pour trouver la ressource que vous désirez
C:
For i = 1 to ThisProject.Tasks(n).Resources.Count
if ThisProject.Tasks(n).Resources(i).Name = "BEM" then
GanttBarFormat TaskID:=ThisProject.Tasks(n).ID, MiddleColor:=ThisProject.Tasks(n).Resources(1).ID
End If
Next i

Il va faloir que vous ajoutiez la variable "i" dans vos déclaration: "Dim i as Integer"

//

E: middlecolor:=thisproject.tasks(n).resources(1).id
R: Ceci ne changera pas la couleur.
C: GanttBarFormat TaskID:=ThisProject.Tasks(n).ID, MiddleColor:=ThisProject.Tasks(n).Resources(1).ID

Sur une ligne seulement. C'est une commande et tout est nécessaire

//

E: end (saut de ligne) sub
R: Doit être sur une ligne
C: "End Sub"

Je n'ai pas tester votre code, alors je "crois" que cela devrait être correcte maintenant.

Utiliser plutôt l'exemple fournis dans mon message précédent et la boucle présenté dans ce message. Si le nom de ressource "BEM" est trouvé dans toutes les ressources de la tâche, la couleur sera mise.

Vous pouvez aussi utiliser un index précis au lieu de l'identifiant de ressource. Par exemple, la couleur indexé à "20" sera utilisée:
GanttBarFormat TaskID:=ThisProject.Tasks(n).ID, MiddleColor:=20

Voici un exemple complet qui devrais fonctionner:

Sub ColorerGanttSelonRessource()
Dim n As Integer
Dim i As Integer
For n = 1 To ThisProject.Tasks.Count
If ThisProject.Tasks(n).Resources.Count >= 1 Then
For i = 1 To ThisProject.Tasks(n).Resources.Count
if ThisProject.Tasks(n).Resources(i).Name = "BEM" then
'utiliser l'index de couleur "20"
GanttBarFormat TaskID:=ThisProject.Tasks(n).ID, MiddleColor:=20
End If
Next i
End If
Next n
End Sub
Re: visual basic couleur de gantt
mardi 25 mai 2004 09:57:45
merci pour vos renseignement!
mais il subsiste une erreur
car il y a un bug lors de l'exécusion
a ce moment la
If ThisProject.Tasks(n).Resources.Count >= 1 Then
For i = 1 To ThisProject.Tasks(n).Resources.Count
if ThisProject.Tasks(n).Resources(i).Name = "BEM" then
le message d'erreur est "valeur d'argument non valide"

merci de m'aider une nouvelle fois
Re: visual basic
samedi 5 juin 2004 20:43:40
gestion destock

Re: visual basic
samedi 5 juin 2004 20:46:24
programation
Bonjour Antony,

Je suis désolé pour le temps de réponse. Voici, je viens de tester le code, et il semble que le problème soit simplement l'index de couleur. Utilisez un index inférieur ou égal à 16 (et suppérieur ou égal à 1).

GanttBarFormat TaskID:=ThisProject.Tasks(n).ID, MiddleColor:=16

Comme je vous l'avais dit, je n'avais pas tester le code, alors je ne connaissait pas cette limitation.

Il me semble qu'il est possible d'avoir plus de couleurs (dans mon exemple simple, j'avois d'auters couleurs), mais la fonction RGB ne semble pas faire fonctionner le tout correctement. Enfin, je crois qu'un meilleur que moi devra répondre à ce problème de 16 couleurs. :)

Bonne chance!
Re: visual basic couleur de gantt
mardi 8 juin 2004 11:41:30
Je vous remercie de votre reponse mais je vais encore vous ennuyer
j'ai réécris le code que vous m'aviez donné
en restant entre 1 et 16 mais rien ne se passe et le message "valeur d'argument non valide" revient sur plusieurs lignes.
Peut être que cela pourrais venir d'une différence entre nos versions de project
J'ai la version 2002 standard et la version 2003 professionnel

merci de votre aide
anthony
Je ne pourrais dire de quoi il s'agit...

1. Assurez vous que le code est bien entré.
2. Assurez vous que le code est dans un "Module" qui est dans votre document de projet. En effet, si le module n'est pas dans le projet, j'ai remarqué qu'il ne se produit rien.
3. J'utilise la version 2004 Professionnel de project.
3. Si vous le désirez, envoyez moi par courrier électronique exactement ce que vous avez entré. Je regarderai cela.
4. Si vous désirez envoyer le fichier project au complet, assurez vous de le compresser avec ZIP ou RAR ou autre. Je n'ai pas de lien haute vitesse chez moi (modem 56K).
(Je voulais dire la version 2003 Professionnel de Project; désolé.)
Re: visual basic couleur de gantt
mercredi 9 juin 2004 08:05:58
merci pour toutes vos aides!
j'ai reussi ce que je voulais faire et ce grace a vous donc merci beaucoup pour votre aide
anthony
Alors nous sommes deux à être bien content! :)

Au plaisir!
Re: visual basic
mercredi 2 février 2005 10:24:49
tu peu m'expliquer ton programme sur visual basic???
Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquez ici pour vous connecter

gestiondeprojet.com | Logiciels | Liens | Forums | Sondages | Livres | Guides


Copyright 1999-2014 gestiondeprojet.com Tous droits réservés.