1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2017
    Messages : 7
    Points : 8
    Points
    8

    Par défaut Identifier si d'autres tâches se déroulent pendant la durée d'une tâche donnée

    Bonjour,

    Avec la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CalendarTaskList(strDate)
    j'obtiens à l'écran une liste de tâche pour une date donnée mais je n'arrive pas à les récupérer ou récupérer le nombre de tâches pour ce jour là.

    L'idée serait de faire une boucle pour toutes les tâches du projet et pour une tâche Tasks(i) vérifier que durant sa durée d'autres tâches sont elles aussi en cours ou non et le signaler dans une colonne supplémentaires
    Pour l'instant je compte les ressources mais ça ne suffit pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    For Each T In ActiveProject.Tasks
       If Not (T Is Nothing) Then
          If ActiveProject.Tasks(i).Resources.Count > 1 Then
             SelectTaskField Row:=i, Column:="Code hiérarchique7", rowrelative:=False
             ActiveProject.Tasks(i).OutlineCode7 = "OUI"
          Else
             SelectTaskField Row:=i, Column:="Code hiérarchique7", rowrelative:=False
             ActiveProject.Tasks(i).OutlineCode7 = "NON"
          End If
       End If
    Next
    En vous remerciant,

    JMichelc-

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2017
    Messages : 7
    Points : 8
    Points
    8

    Par défaut résolution possible

    Bonjour,

    je pense que je peux encore simplifier ma boucle mais le bout de code suivant fonctionne

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    Sub PrRechercheCoActivite()
        Dim TabProject(), TabRessource() As Variant
        Dim DerTacheProject As Long
        Dim StrDebutI, StrFinI, StrDebutJ, StreFinJ As Long
     
        DerTacheProject = ActiveProject.Tasks.Count
        DerRessourceProject = ActiveProject.ResourceCount
     
        ReDim TabProject(DerTacheProject, 4)
        ReDim TabRessource(DerTacheProject, DerRessourceProject)
     
        'stockage des valeurs de début et de fin de taches ainsi que les ressources associées à chaque tâche - identification de la tâche
        ' si "Summary" ou non
        For i = 1 To DerTacheProject
            If ActiveProject.Tasks(i).Summary Then
                TabProject(i, 1) = ""
                TabProject(i, 2) = ""
                TabProject(i, 3) = "Summary"
                TabProject(i, 4) = 0
            Else
                TabProject(i, 1) = ActiveProject.Tasks(i).start
                TabProject(i, 2) = ActiveProject.Tasks(i).Finish
                TabProject(i, 3) = ""
                TabProject(i, 4) = ActiveProject.Tasks(i).Resources.Count
                If TabProject(i, 4) > 0 Then
                    For k = 1 To TabProject(i, 4)
                        TabRessource(i, k) = ActiveProject.Tasks(i).Resources(k).Name
                    Next
                End If
            End If
        Next i
     
        'recherche des co-activités en fonction de ressources différentes
        ' valeur positionnée à oui si au moins 2 tâches avec des jours communs et des ressources différentes
        For i = 1 To DerTacheProject
            If TabProject(i, 3) <> "Summary" Then
                StrDebutI = TabProject(i, 1)
                StrFinI = TabProject(i, 2)
                For j = 1 To DerTacheProject
                    StrDebutJ = TabProject(j, 1)
                    StrFinJ = TabProject(j, 2)
                    If TabProject(j, 3) <> "Summary" Then
                        If i <> j Then
                            If (StrDebutJ <= StrDebutI And StrFinJ >= StrDebutI) Or _
                            (StrDebutJ >= StrDebutI And StrFinJ <= StrFinI) Or _
                            (StrDebutJ >= StrDebutI And StrDebutJ <= StrFinI) Or _
                            (StrDebutJ <= StrDebutI And StrFinJ >= StrFinI) Then
                                For k = 1 To TabProject(i, 4)
                                    For l = 1 To TabProject(j, 4)
                                        If TabRessource(i, k) <> TabRessource(j, l) Then
                                            testcoact = True
                                            TabProject(i, 3) = "oui"
                                            TabProject(j, 3) = "oui"
                                            Exit For
                                        End If
                                    Next l
                                Next k
                            End If
                        End If
                    End If
                Next j
            End If
        Next i
     
        'écriture des la valeur de co-activités dans le projet
        For i = 1 To DerTacheProject
            If TabProject(i, 3) = "oui" Then
                SelectTaskField Row:=i, Column:="Code hiérarchique7", rowrelative:=False
                ActiveProject.Tasks(i).OutlineCode7 = TabProject(i, 3)
            Else
                SelectTaskField Row:=i, Column:="Code hiérarchique7", rowrelative:=False
                ActiveProject.Tasks(i).OutlineCode7 = ""
            End If
        Next i
    '    MsgBox Timer - start
    End Sub

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

Discussions similaires

  1. [PR-2010] Problème de la durée d'une tâche
    Par alias-anas dans le forum Project
    Réponses: 3
    Dernier message: 04/07/2014, 12h10
  2. [PR-2000] Ajuster automatiquement la durée d'une tâche
    Par gregory.luciani dans le forum Project
    Réponses: 5
    Dernier message: 19/11/2013, 13h06
  3. Réponses: 1
    Dernier message: 08/11/2012, 10h44
  4. [Système] Loader pendant l'execution d'une tâche
    Par amans dans le forum Fonctions
    Réponses: 5
    Dernier message: 04/07/2008, 17h58
  5. Réponses: 6
    Dernier message: 16/04/2007, 18h07

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