VBA-Excel-MS Project

Bonjour,

J´essaye d´interconnecter MS Project et Excel via VBA, j´ai activé mes librairies mais je n´arrive pas a assigner mon classeur excel a une varible

Dim wbExcel As Excel.Workbook
Dim stCaminoExcel$, stFichExcel$
stFichExcel = "PlaneamientoProtegido V-8.xlsm"
stCaminoExcel = "C:\Users\user\Desktop\Proyectos\Planeamiento\" & stFichExcel
'j´utilise pour faire un test si mon classseur excel est ouvert ce qui fonctionne mais quand j´essaye d' assigner ce classeur a une variable cela bug
Set wbExcel = Workbooks(stCaminoExcel)


J´arrive a vérifier si mon classeur est ouvert mais pas l´assigner a une varible pour utiliser certaines données de ce classeur.

Merci d´avance pour votre aide.

6 réponses

  1. Contributeur
    bonsoir, peux-tu alors fermer la discussion qui fait maintenant doublon?
    1. Bonsoir,

      L´autre discussion est marqué comme résolu, on continue sur celle ci.

      Tu as raison
  2. Contributeur
    Dim XLapp As Excel.Application
    Dim wbExcel As Excel.Workbook
    Dim stCaminoExcel As String, stFichExcel As String
    stFichExcel = "PlaneamientoProtegido V-8.xlsm"
    stCaminoExcel = "C:\Users\user\Desktop\Proyectos\Planeamiento\" & stFichExcel
    Set XLapp = New Excel.Application
    Set wbExcel = XLapp.Workbooks.Open(stCaminoExcel)
    'quel est le message d'erreur?
    1. Dim xlSheet As Excel.Worksheet 
      Dim stCaminoExcel$, stFichExcel$
      stFichExcel = "Beta02-06-2017.xlsx"
      stCaminoExcel = "C:\Users\user\Desktop\Planeamiento\Reporte\Beta\" & stFichExcel
      
      If FichierEstOuvert(stCaminoExcel) Then
      Set xlApp = New Excel.Application
      xlApp.Visible = True
      AppActivate "Excel"
      Set xlBook = xlApp.Workbooks(stFichExcel)
      '....


      Message d ´erreur sur la derniere ligne :
      erreur 9
      subindice endehors de l´intervalle

      Dsl c´est moi qui traduit depuis l´espagnol alors je ne connais pas les termes exacts

      Merci
  3. Contributeur
    Dim XLapp As Excel.Application
    Dim wbExcel As Excel.Workbook
    Dim stCaminoExcel As String, stFichExcel As String
    stFichExcel = "Beta02-06-2017.xlsx"
    stCaminoExcel = "C:\Users\user\Desktop\Planeamiento\Reporte\Beta\" & stFichExcel
    Set XLapp = New Excel.Application
    Set wbExcel = XLapp.Workbooks.Open(stCaminoExcel)

    quel est le message d'erreur?
    1. Set wbExcel = XLapp.Workbooks.Open(stCaminoExcel) 

      Sur le open il n´y a pas de pb pour ce fichier mais le détail est que le fichier excel a parti duquel je veux travailller possede une inputbox a l´ouverture pour enregistrer l´utilisateur et ainsi restreindre les possibilités par la suite.

      Pour cela que je cherche a assigner a ma variable de la facon suivante:
      stFichExcel = "Beta02-06-2017.xlsx" 
      Set wbExcel = xlApp.Workbooks(stFichExcel)


      Je vérifie que mon document soit ouvert pour faire ceci.

      Merci
  4. Contributeur
    donc tu ne veux pas ouvrir le fichier à partir de Project, mais tu veux que Project travaille avec un fichier déjà ouvert par Excel. c'est bien cela?
    1. Exectement
  5. Contributeur
    et ainsi?
    Dim XLapp As Excel.Application
    Dim wbExcel As Excel.Workbook
    Dim stCaminoExcel As String, stFichExcel As String
    stFichExcel = "Beta02-06-2017.xlsx"
    stCaminoExcel = "C:\Users\user\Desktop\Planeamiento\Reporte\Beta\" & stFichExcel
    Set XLapp = New Excel.Application
    XLapp.Visible = True
    Set wbExcel = XLapp.Workbooks.Open(stCaminoExcel)
    1. ca me l´ouvre une fois de plus

      pour ouvrir c´est avec le chemin complet
      Set wbExcel = XLapp.Workbooks.Open(stCaminoExcel)}

      Mais pour assigner le classeur deja ouvert normalement c´est juste avec le non du classeur suivi de son extension?

      Set xlBook = xlApp.Workbooks(stFichExcel)


      Tu confirmes?
    2. Contributeur
      @GermPeruje ne pense pas qu'il soit possible d'assigner le classeur déjà ouvert dans une autre instance de Excel.
    3. Est ce que tu sais s´il y a un moyen de contourner pour que je puisse aller chercher des infos dans mon classeur deja ouvert genre :
      Set xlBook = xlApp.Workbooks(stFichExcel)
      Set xlSheet = xlBook.worksheets(1)
    4. Contributeur
      @GermPeruje ne pense pas que ce soit possible.
    5. @yg_beBonjour,

      ahhhrrrrffff va falloir une idée et une bonne!

      Merci de l´aide
  6. Contributeur
    Bonjour,

    essaie ceci:

    Dim XLapp As New Excel.Application
    Dim wbExcel As Excel.Workbook
    Dim stCaminoExcel As String, stFichExcel As String
    stFichExcel = "Beta02-06-2017.xlsx"
    stCaminoExcel = "C:\Users\user\Desktop\Planeamiento\Reporte\Beta\" & stFichExcel
    XLapp.Visible = True
    Set wbExcel = XLapp.Workbooks.Open(stCaminoExcel)
     With wbExcel.Sheets(1) 'a adapter
     'ton code
     End With
    XLapp.Quit

    1. Bonjour,

      Mon classeur est deja ouvert car il s´ouvre avec mdp dans une inputbox, est ce que l´on cherche a faire c´est
      Set wbExcel = XLapp.Workbooks.(stFichExcel)
      

      et non:
      Set wbExcel = XLapp.Workbooks.Open(stCaminoExcel)


      Mais cela ne fonctionne pas ce que je vais faire c´est un backup des données qui m´interesse sur un autre fichier et oub¿vrir cet autre fichier.

      Merci
    2. Contributeur
      @GermPeruen fait ce que tu veux faire c'est, au lieu de:
      Dim XLapp As Excel.Application
      ' exécuter une nouvelle copie de Excel
      Set XLapp = New Excel.Application

      quelque chose comme
      Dim XLapp As Excel.Application
      Set XLapp = ' se connecter à une copie active de Excel

      et je ne pense pas que ce soit possible.
    3. @yg_beMerci...

      Du coup je travaille sur la création d´une backup des données que je veux utilisées, déterminer la backup la plus récente et ensuite l´ouvrir...

      Je laisse la discution ainsi au cas ou il y est quelqu´un qui ait la bonne idée.

      Merci yg_be
    4. Contributeur
      @GermPeruje vois que ton excel principal est un xlsm.
      peut-être pourrais-tu mettre les données dans un autre fichier excel, inconnu de l'utilisateur, et que Project et le xlsm utilise les données dans l'autre fichier excel?
    5. Bonjour,

      Ce que j´ai fait c´est de créer une backup de mes données en .xls, mais maintenant toutes les maccros que j´ai faite ont litéralement disparue, j´ai un probleme pour enregistrer mes macros avec MS Project.

      Je ne sais pas d´ou provient ce probleme, j´ai essayé d´autres référence dans ma librairie, ou enregistrer un modele en version .mpt mais rien n´y fait...

      Ce que je comprends pas c´est lorsque j´ouvre ma fenetre vba, j´ai 2 documents un modele et un autre dont le nom est le chemin ou j´enregistre mon Project.

      J´ai fait des maccros dans les 2 mais rien y fait a un moment cela plante et je perds toute les données que j´ai enregistré ou pas...

      J´ai posé une question sur le Forum sans réponse.

      Le code d´erreur est tout d´abord module introuvale, puis avant de planté:
      &h800757 (-2147024809)

      Si tu as une idée je prenneur car rien trouvé sur le net...

      Merci d´avance