Ajouter une ressource si...

  • Initiateur de la discussion Initiateur de la discussion saint-jey
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

saint-jey

XLDnaute Nouveau
Bonjour à tous,

J'ai à nouveau un problème dans ma macro excel qui commande MS Project [excel97 vers Project 2003].

En fait, je souhaite ajouter le nom d'une ressouce dans MS Project, ressource qui est défini par les cellules d'Excel. Mon problème, c'est que je ne veux pas que les ressources soient répétées à l'infini !

Je voudrais faire une commande du genre :

si la ressource existe déjà dans la liste des ressources MS Project, on ne remet pas le nom de la ressource. Dans le cas contraire, on ajoute le nom.
J'ai essayé ça mais ça ne marche pas :

Set prjApp = CreateObject("MSProject.application")
prjApp.Application.FileOpen Name:="O:\Gestion des ressources\Excel Test\Plannings Project\" & NomProjet & ".mpp", FormatID:="MSProject.MPP"

prjApp.Application.Visible = True
Set ActiveProject = prjApp.Application

For Each Res In ActiveProject.Resources
If Res.Value = NomUtilisateur Then
Exit For
ElseIf Res.Value = "" Then
ActiveProject.Resources.Add (NomUtilisateur)
Exit For
End If
Next Res

Merci d'avance pour l'aide que vous me donnerez 🙂
 
Re : Ajouter une ressource si...

Bonsoir saint-jey,

Voici une solution.
N'ayant pas MS-Project, je n'ai pas pu faire de tests. J'espère que cela conviendra.

Code:
    Dim derLig As Long
    Dim Plage As Range, Cell As Range
    Dim trouveRes As Boolean

    Set prjApp = CreateObject("MSProject.application")
    prjApp.Application.FileOpen Name:="O:\Gestion des ressources\Excel Test\Plannings Project\" & NomProjet & ".mpp", FormatID:="MSProject.MPP"
    
    prjApp.Application.Visible = True
    Set ActiveProject = prjApp.Application
    
    ' Ne sachant pas dans quelles cellules de ton fichier Excel se trouvent les ressources
    ' je définis par défaut la plage de A2 à An (n étant la dernière ligne remplie)
    ' A toi d'adapter en fonction de ton fichier
        ' Dernière ligne remplie en colonne A
    derLig = Worksheets("Feuil1").Range("A" & Cells.Rows.Count).End(xlUp).Row
    If derLig < 2 Then Exit Sub
        ' Définition de la plage de cellules dans le fichier Excel
    Set Plage = Worksheets("Feuil1").Range("A2:A" & derLig)
    
    ' Boucle sur chaque cellule de la plage
    For Each Cell In Plage
        trouveRes = False
        
        For Each Res In ActiveProject.Resources
            ' Si la ressource est trouvée, on sort
            If Res.Value = Cell.Value Then
                trouveRes = True
                Exit For
            End If
        Next Res
        
        ' Si la ressource n'a pas été trouvée, l'ajouter
        If trouveRes = False Then
            ActiveProject.Resources.Add Cell.Value
        End If
    Next Cell
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour