IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Project Discussion :

Gestion congés MS Project [PR-2010]


Sujet :

Project

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur après-vente
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2010
    Messages : 24
    Points : 27
    Points
    27
    Par défaut Gestion congés MS Project
    Bonjour,

    Je développe actuellement un projet en MS Project 2010, pour un site minier.

    Je voudrais créer plusieurs calendriers avec des régimes de rotation particuliers :
    - 8 semaines sur site / 2 semaines off
    - 9 semaines sur site / 3 semaines off
    - 10 semaines sur site / 4 semaines off
    - ...

    J'ai déjà essayé avec les réccurences dans la personnalisation des calendrier, ca marche pour la première semaine d'absence, puis j'ai un conflit lorsque j'essaye de programmer la seconde semaine d'absence.

    Je suis donc à la recherche d'un code VBA qui me permettra de programmer le calendrier (j'ai déjà fouillé la FAQ, mais je n'ai pas trouvé ce code...)

    Est-ce que quelqu'un aurait une idée?

    D'avance merci !

  2. #2
    Membre habitué Avatar de Eowyn
    Femme Profil pro
    Project Manager PMP, Administratrice Project Server 2007/2010/2013
    Inscrit en
    Juillet 2004
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Project Manager PMP, Administratrice Project Server 2007/2010/2013
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2004
    Messages : 107
    Points : 136
    Points
    136
    Par défaut
    Est-ce que les ressources conservent le même calendrier toute l'année ? ou est-ce qu'ils changent ?
    S'ils gardent le même rythme toute l'année, je composerais un calendrier par type et j'attribuerais le bon calendrier à la bonne ressource.
    S'ils changent régulièrement, je crains qu'il ne faille gérer chaque absence pour chaque ressource.
    Pour les extraits de code, pardon à Developpez, mais je pense que pour MS Project, tu trouveras plus de soutien sur le forum de Technet...

    bonne suite
    Eo
    Be the change you wish to see in the world. Gandhi

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur après-vente
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2010
    Messages : 24
    Points : 27
    Points
    27
    Par défaut
    Merci Eo!

    Mon cas est assez particulier: les ressources pour lesquelles ce calendrier doit s'appliquer sont le ou les Site Managers. Il ont donc des rotations (par exemple) de 8 semaines sur site, 2 semaines off.

    Ce rythme est régulier, mais c'est le début du projet qui détermine le début de la séquence (ouch, ça se complique...). De plus, s'il y a 2 Site Managers, il faut qu'ils aient une semaine en commun sur le site, donc que le calendrier su second Site Manager soit décalé d'une semaine...

    Je pense donc créer un calendrier par Site Manager. Par contre, si d'autres ressources devaient suivre ce rythme, je pourrais leur affecter un de ces deux calendrier.

    C'est surtout les extratis de code qui seront de nature à m'aider... Je continue mes recherches

    Myke

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur après-vente
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2010
    Messages : 24
    Points : 27
    Points
    27
    Par défaut
    Basé sur le post de Trevor Lowing, PMP (http://officetechsupport.wordpress.c...ject-calendar/), voici ma solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Function CreateProjectCalendar2()
     Dim i, FirstDayIn, iRotations, NbRot As Integer
     Dim DateIn, CalName, BaseCalName As String
     BaseCalName = "Standard"
     CalName = "Rotations 8/2"
     
    Dim oCal As Calendar
     
    'Make sure calendar does not already exsits and delete if it does.
     For Each oCal In ActiveProject.BaseCalendars
      If Not oCal Is Nothing Then
       If oCal.Name = CalName Then
       oCal.Delete
       End If
     
      End If
     
     Next
     
    Application.BaseCalendarCreate CalName, BaseCalName
     
    'Get information
    FirstDayIn = InputBox("Please input number of days before Ressource to be on site and start rotation cycles", "Start date of rotations 8/2")
    NbRot = InputBox("Please input number of rotation cycles", "Number of rotations required")
     
    DateIn = Now + FirstDayIn
     
    For iRotations = 1 To NbRot
     ' Set days 56 to 69 non working, other days based on standard calendar
     Application.BaseCalendarEditDays Name:=CalName, StartDate:=DateIn + 56, EndDate:=DateIn + 69, Working:=False, Default:=False
     
     'Prepare for next loop
     DateIn = DateIn + 70
     
    Next
     
    MsgBox "Done"
     
    End Function
    Si l'un d'entre vous voit l'un où l'autre moyen d'améliorer le code, n'hésitez pas, je suis preneur !

    Merci...

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Novembre 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur après-vente
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2010
    Messages : 24
    Points : 27
    Points
    27
    Par défaut
    Petit upgrade : le code ci-dessous permet de gérer d'autres rythmes de rotation, selon les éléments introduits par l'utilisateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Sub CreateProjectRotationCalendar()
    Dim Answer, FirstDayIn, iRotations, NbRot, WeeksOn, WeeksOff As Integer
    Dim DateIn As Date
    Dim oCal As Calendar
     
    Const BaseCalName = "Standard"
     
    Collect:
        WeeksOn = InputBox("Please input number of worked weeks", "Definition of rotations")
        WeeksOff = InputBox("Please input number of weeks off", "Definition of rotations")
        CalName = "Rotations " & WeeksOn & "/" & WeeksOff
     
        Answer = MsgBox("Rotations will be " & WeeksOn & " weeks on / " & WeeksOff & " weeks off." & Chr(10) & "Please confirm.", vbYesNo)
     
        If Answer = 7 Then
     
         GoTo Collect
     
        End If
     
        On Error Resume Next
        Set oCal = ActiveProject.BaseCalendars(CalName)
        If Not oCal Is Nothing Then
            oCal.Delete
        End If
     
        Application.BaseCalendarCreate CalName, BaseCalName
     
        'Get information
        FirstDayIn = InputBox("Please input number of days before Resource to be on site and start rotation cycles", "Start date of rotations 8/2")
        NbRot = InputBox("Please input number of rotation cycles", "Number of rotations required")
     
        DateIn = Now + FirstDayIn
     
        For iRotations = 1 To NbRot
         ' SSet days weeks off to non-working, other days based on standard calendar
            ActiveProject.BaseCalendars(CalName).Exceptions.Add Type:=pjDaily, Start:=DateIn + (7 * WeeksOn), Finish:=DateIn + (7 * (WeeksOn + WeeksOff)) - 1, Name:="Left for rotation"
     
         'Prepare for next loop
            DateIn = DateIn + (WeeksOn + WeeksOff) * 7
        Next
     
        MsgBox "Done", vbOKOnly + vbExclamation
    End Sub
    Si ça peut aider quelqu'un...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/03/2013, 13h02
  2. [XL-2007] Conception fichier gestion congés payés
    Par lpetitlolo dans le forum Conception
    Réponses: 4
    Dernier message: 28/04/2012, 18h42
  3. Applications exportable & Gestion Congés
    Par kappatau dans le forum C#
    Réponses: 30
    Dernier message: 13/03/2010, 18h04
  4. probleme gestion congé
    Par laaroussi1 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/04/2008, 02h46
  5. gestion congés avec fichier xls
    Par didou038 dans le forum C++Builder
    Réponses: 9
    Dernier message: 15/01/2007, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo