VBA-Excel-MS Project

GermPeru Messages postés 175 Statut Membre -  
GermPeru Messages postés 175 Statut Membre -
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. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonsoir, peux-tu alors fermer la discussion qui fait maintenant doublon?
    0
    1. GermPeru Messages postés 175 Statut Membre
       
      Bonsoir,

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

      Tu as raison
      0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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?
    0
    1. GermPeru Messages postés 175 Statut Membre
       
      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
      0
  3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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?
    0
    1. GermPeru Messages postés 175 Statut Membre
       
      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
      0
  4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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?
    0
    1. GermPeru Messages postés 175 Statut Membre
       
      Exectement
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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)
    0
    1. GermPeru Messages postés 175 Statut Membre
       
      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?
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > GermPeru Messages postés 175 Statut Membre
         
        je ne pense pas qu'il soit possible d'assigner le classeur déjà ouvert dans une autre instance de Excel.
        0
    2. GermPeru Messages postés 175 Statut Membre
       
      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)
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > GermPeru Messages postés 175 Statut Membre
         
        je ne pense pas que ce soit possible.
        0
      2. GermPeru Messages postés 175 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour,

        ahhhrrrrffff va falloir une idée et une bonne!

        Merci de l´aide
        0
  7. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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

    0
    1. GermPeru Messages postés 175 Statut Membre
       
      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
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > GermPeru Messages postés 175 Statut Membre
         
        en 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.
        0
      2. GermPeru Messages postés 175 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Merci...

        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
        0
      3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > GermPeru Messages postés 175 Statut Membre
         
        je 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?
        0
    2. GermPeru Messages postés 175 Statut Membre
       
      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
      0