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 :

Insertion de tâche d'excel vers Project [PR-2007]


Sujet :

Project

  1. #1
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Insertion de tâche d'excel vers Project
    Tout d'abord bonjour à tous,

    voilà je me tourne vers vous car j'ai un petit problème.
    En effet, je souhaiterai exporter des tâches depuis Excel vers Project. Je sais qu'ils existent l'extraction automatique depuis Project ou même que je peux faire un enregistrement de l'opération pour avoir le code qui est généré (chose que je fais aujourd'hui), mais le problème n'est pas là.

    Je m'explique :

    Je possède un fichier Excel qui est rempli par des Chefs de projets, avec des informations tels que le périmètre sur lequel ils actuent, leurs noms, le noms de la ressource désirée, la date souhaitée de réalisation et j'en passe.
    J'ai donc commencé à développer un script qui me permet depuis project de comparer mon fichier excel avec le contenu de mon project en se basant sur un numéro chrono (numéro d'arriver de la tâche) qui est biensur présent dans mon excel ainsi que dans mon project.
    Si lors du parcours, je retrouve le même numéro de chrono je passe au suivant, lorsque je ne trouve pas de numéro chrono identique aux deux fichiers, je récupère la valeur de l'ID du champs périmètre afin de pouvoir copier ma tâche sous le bon périmètre. Et là je rencontre un problème, mon script ne me place pas mes tâches créées sous le bon périmètre. Et c'est là que j'aurais besoin d'un petit coup de pouce
    Je voudrais donc que lorsqu'un numéro chrono n'existe pas, celui-ci en regardant dans le fichier excel voit dans quel périmètre on se trouve, copie ma tâche excel et me la colle sous le bon champs (périmètre donc) dans mon fichier Project , et là je n'arrive à rien :s.
    J'ai pu constaté que mon script fonctionne lors de l'insertion d'une première tâche, mais suite à cette insertion, celui-ci chamboule la position des périmètres et donc lors d'une seconde insertion, il a retenu l'ancienne place (donc ID) de mon champs périmètre et m'insère donc ma tâche au mauvais endroit.

    J'espère que je me suis fais comprendre :s, si ce n'est pas le cas veuillez me le dire, j'essayerai de reformuler le tout

    Vous trouverez en pièce jointe mon fichier excel ainsi que mon project. C'est un fichier test donc le contenu des cellules a été modifié et non pas vraiment de sens .

    Bien cordialement,

    Miguel
    Fichiers attachés Fichiers attachés

  2. #2
    Membre à l'essai
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Problème résolu
    Bonjour à tous,

    juste pour vous dire que je clos mon sujet étant donné que j'ai trouvé la solution à mon problème ^^

    Bien cordialement,

    Miguel

    P.S : pour ceux que ça aideraient, voici le code qui répond à mon problème.
    Je suis passé par une fonction

    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    'Déclaration de mes variables publiques
    Public IDMigration As Integer
    Public IDBuild As Integer
    Public IDRun As Integer
     
    Sub ImportTachesExcel()
    'Constantes
    COL = 5
     
    'Variables
    Dim CurrentID As Long
    Dim cpt As Integer
    Dim cpt2 As Integer
    Dim chrono As Integer
    Dim Rubrique As String
    Dim pathxls As String
    Dim trouvé As Boolean
    Dim Xlobj As Object
    Dim Xlsht As Object
    Dim i As Integer
    Dim vrow As Integer
    Dim Position
     
    'Traitement de l'erreur
    On Error Resume Next
    'Instanciation des variables
    pathxls = "" 'mettre le chemin du fichier excel
     
    'Recheche de l'ID de chaque rubrique : Build, Migration, Run
    refreshid
     
    'Creation de l'objet Excel
    Set Xlobj = CreateObject("Excel.Application")
    'Ouverture du fichier
    Xlobj.workbooks.Open pathxls
     
     
    'Scanning des lignes et comparaison avec les taches Project afin d'insérer celles qui ne sont pas présentes
    ' Pierre de Rosette = Numéro Chrono stocké dans le champ project : Numéro 1
    cpt = 2
    While Xlobj.Worksheets("Basedonnées").cells(cpt, 1) <> ""
        'Parcours du fichier afin de voir si le chrono est existant dans le project
        chrono = Xlobj.Worksheets("Basedonnées").cells(cpt, 1)
        'Rubrique = UCase(Xlobj.Worksheets("Basedonnées").cells(cpt, 4))
        Rubrique = Xlobj.Worksheets("Basedonnées").cells(cpt, 4)
        trouvé = False
        For cpt2 = 1 To ActiveProject.Tasks.Count
            If chrono = ActiveProject.Tasks(cpt2).Number1 Then
                trouvé = True
            End If
        Next cpt2
        'Traitement si pas trouvé, on insère dans la sous rubrique correspondante (Build, Run, Migration)
        If trouvé = False Then
            'Instanciation de l'ID sous lequel créer la tache
            Select Case Rubrique
                Case "BUILD"
                    CurrentID = IDBuild
                Case "Migration"
                    CurrentID = IDMigration
                Case "RUN"
                    CurrentID = IDRun
            End Select
            'Création de la tache
            ActiveProject.Tasks.Add "my new task", CurrentID + 1
            'ActiveProject.Tasks(idtask).Parent = CurrentID
            'ActiveProject.Tasks(idtask).Ressources.Add Xlobj.Worksheets("Basedonnées").cells(cpt, 9)
            'ActiveProject.Tasks(idtask)
            'Xlobj.Worksheets("Basedonnées").cells(cpt, 5), CurrentID
            'Appel de la fonction pour retrouver les bons id de positionnement
            refreshid
            End If
        cpt = cpt + 1
     
    Wend
    Xlobj.Quit
    Set Xlobj = Nothing
     
     
     
    End Sub
     
    'Fonction de recherche de l'id avant et après insertion de tâches
    Sub refreshid()
    On Error Resume Next
    Dim cpt As Integer
    For cpt = 1 To ActiveProject.Tasks.Count
        Select Case ActiveProject.Tasks(cpt).Name
            Case "Migration"
                IDMigration = ActiveProject.Tasks(cpt).ID
            Case "RUN"
                IDRun = ActiveProject.Tasks(cpt).ID
            Case "BUILD"
                IDBuild = ActiveProject.Tasks(cpt).ID
        End Select
    Next cpt
    End Sub

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

Discussions similaires

  1. [Toutes versions] Insertion données en nombre; Excel vers Access
    Par DonKnacki dans le forum VBA Access
    Réponses: 7
    Dernier message: 28/02/2012, 16h06
  2. insert into depuis feuille excel vers table sous sql server 2005
    Par enstein8 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 09/12/2011, 17h21
  3. [XL-2003] requete ADO INSERT depuis Excel vers Access
    Par MaxAttila dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/05/2011, 15h26
  4. [XL-2003] INSERT INTO excel vers excel
    Par steph77 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/10/2009, 13h27
  5. Récupérer des données Excel vers Interbase ...
    Par Djedjeridoo dans le forum InterBase
    Réponses: 2
    Dernier message: 20/07/2003, 19h16

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