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

MFC Discussion :

Comment ouvrir excel d'un objet _Application avec des dlls


Sujet :

MFC

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 26
    Points : 10
    Points
    10
    Par défaut Comment ouvrir excel d'un objet _Application avec des dlls
    Bonjour,

    J ouvre un excel de mon application cpp avec les code suivant:
    _Application oApp;
    if(!oApp.CreateDispatch("Excel.Application", NULL))
    {
    AfxMessageBox("Cannot start Excel");
    return;
    }
    ....
    Mon problem est que j ai besoin de loader 4 dll et 2 xla pour faire fonctionner ma macro. Savez vous comment je peux les loader ?
    Merci beaucoup

  2. #2
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    Quand vous etes dans excell comment faites vous pour charger ces
    dll et xla?
    Vous devez faire la meme chose a partir du c++ en utilisant
    les interfaces.
    Un truc, sous excel, avant de faire manuellement les operations,
    demarrez une nouvelle macro puis lorsque vous avez fini allez lire
    le code vba de la macro et transposez la dans votre code c++

    Salut

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Pour lancer excel avec toutes les dll, je lance un .bat avec la commande suivante :
    start "QCD" "%ExcelPath%" "%WestPath%\%WestDLL%" "%WestXLAPath%" "%QCDPath%\%QCDXLA%" %CredXLAPath%%CredXLA% \\lon\cred\Caro\calc_Risk\Calc_Risk_9_INDEV.xls /e/List/job/
    Je ne trouve pas comment reproduire cela.
    Avez vous une idee ?
    Merci d avance

  4. #4
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    je crois que les .xla peuvent etre chargee comme add-in,
    pour les .dll peut etre aussi (a essayer), le xls comme
    un fichier normal excel

    Salut

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Les dlls ont les charge par Add-In, mais je vois vraiment pas comment faire.
    Les xla, je les ouvre comme des workbooks:
    _Workbook oBook2 = oBooks.Open("\\\\lon\\Apps_src.xls);

    J ai essaye des creer une xla contenant mais dll, ca fonction quand je l a load a la main mais pas quand je l ouvre avec oBook
    Jevois pas comment reproduire le add-in.
    Avez vous une idee de comment faire ou de ce que je peux chercher ?
    Merci beaucoup

  6. #6
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    bonjour,

    Donc, on peut charger les dll par add-in,
    donc (avec Excel 97) on va dans le menu 'tool' on clique sur le
    submenu add-in et on selectionne la dll que l'on veut charger OK?
    et ca marche OK?

    Salut

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    J ai essayer de creer une macro qui me load mes 4 dll avec Addin.add Filename..... Mais ca ne fonctionne pas, elles ne sont pas charger.
    Je ne peux pas les loader a la main, mon application est un scheduler qui doit lancer une macro a 4heure du matin.
    Avez vous une idee ?
    Merci

  8. #8
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    Bonjour,

    Ca ne marche pas ou ?

    pour le faire manuellement?
    pour faire la macro?
    pour lancer la macro?
    pour le faire en VC++?

    Un petit peu plus de detail m'aiderai peut etre a repondre

    Salut

  9. #9
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    oki, desolee
    Pour deux de mes dll, j utilise la methode cpp oApp.RegisterXLL(maDll)
    Pour les xls oBook.Open(ma_xla)
    Ca ca marche.
    Mes deux dernieres dll utilise d'autre dll de leur repertoire (14 pour etre extacte) c est pourquoi (je crois) que RegistreXLL ne fonctionne pas, ni oBook.Open();
    J ai essaye de faire une macro qui change le repertoire courant et faire un Add-in.add filename "fileanme", mais ca na fonctionne pas il fais plein d erreures. Pourtant quand je fais un add-in a la main ca fonctionne. Et quand je l ouvre dans excel il affiche la dll.
    Merci beaucoup

  10. #10
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    bonjour,

    dans Add-in.add filename "fileanme", avez vous essayé en mettant
    le nom complet pour filename du genre c:\dir1\dir2\dir3\madll.dll

    Salut

  11. #11
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    yep, j ai essaye, avec "\\lon\cred\dir\madllkejaime.dll" avec "h:\...."
    Il fait toujours une erruer....

  12. #12
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    bonjour,

    -bon quand vous le faite a la main ca marche.
    -avez vous fait une nouvelle macro qui enregistre
    toutes vos operations manuelles?
    -donc c'est cette macro enregistrée qui ne fonctionne pas?
    ????

    Salut

  13. #13
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Foui, c est tout a fait ca.
    J ai pris la recorder, j ai recorde ma macro.... et quand je lance la macro ca fait plein d erreurs, je comprend pas pourquoi. Et ca fait les meme quand j essayer de les loaders de mon objet cpp.
    Avez vous une idee ?
    Merci beaucoup beaucoup

  14. #14
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    bonjour,

    Ne serai t'il pas possible que vous postiez ce que ces erreurs
    affiche. Juste pour voir si ca ne m'eclairerai pas un peu
    si le type d'erreur parcequ'il peut y en avoir tellement de differentes

    Salut

  15. #15
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Je lance la macro:

    ChDrive "h:\bin\"
    AddIns.add FileName:="h:\bin\West.dll"

    -> Il me demande si je veux la copier, je dis non
    -> il "reflechit" pendant 10 secondes et
    "Run-Time error '1004':
    Add method of AddIns Class failed"

    Avez vous deja rencontre ce problem ?
    Merci

  16. #16
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    bonjour,

    j'ai trouvé cela concernant cette erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim oXL As Object, oAddin As Object
    Set oXL = CreateObject("Excel.Application")
    oXL.Workbooks.Add
    Set oAddin = oXL.AddIns.Add("C:\test.xla", True)
    oAddin.Installed = True
    oXL.Quit
    Set oXL = Nothing
    Note that a workbook is added prior to calling the Add method in this example. The Add-in Manager in Excel is not available unless there is at least one visible workbook open. Without this line of code, you receive one of the following error messages:
    Run-time error '1004':
    Unable to get the Add property of the AddIns class
    -or-
    Run-time error '1004':
    Add method of addins class failed.

    Salut

  17. #17
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup,
    Ca ne fonctionne pas avec les 2 dll qui ont besoin d'autre dll...
    ChDrive ChDir m ont pas l air de vraiment fonctionner.
    J ai trouve qu il fallait changer le repertoire par default pour qu il aille chercher les dependances la ou elles sont et non dans c:\
    CurDir renvoit bien "H:\bin" .... mais on dirait qu il ne les tourves pas quand meme.
    Qu en penser vous ?
    Je vous remerci beaucoup.

  18. #18
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    bonjour,

    Il n'y a pas moyen de charger les dependances avant de charger
    les dll?

    Salut

  19. #19
    Membre à l'essai
    Inscrit en
    Septembre 2002
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Ben j y ai bien pense mais il y en a 14 dependance et ils peuvent en ajouter sans vraiment me prevenir.....
    Qu en pensez vous ?

    J essaye de chanegr le path ou par defaut excel cherche les dll manquante mais je ne trouve pas ....
    C est vraiment tres important.
    Si vous avez la moidnre petites pistes je suis preneuse
    Merci vraiment beaucoup )

  20. #20
    Membre régulier

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Points : 93
    Points
    93
    Par défaut
    bonjour,

    Bon j'ai vu quelque part que excel va chercher les addin
    a: dans le "startup folder" (helas propriete de l'application read only)
    b: dans l'" alternate startup folder" (propriete de l'application read/write)
    c: dans les folders systemes
    d: dans les directories repris dans la variable path de l'environnement

    1: on peut essayer en changeant la propriete 'AltStartupPath'
    2: on peut aussi essayer en ajoutant le repertoire ou se trouvent
    les dependences dans la variable path de l'environnement
    3: on peut aussi les charger par une boucle qui utilise
    FindFirstFile et FindNextFile ce qui rendrai independant du nombre
    de fichier a charger

    Salut

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/03/2014, 03h16
  2. Comment ouvrir un fichier word 5.1 avec word 2010?
    Par vmichael dans le forum Word
    Réponses: 1
    Dernier message: 01/04/2010, 09h34
  3. Réponses: 3
    Dernier message: 05/01/2007, 10h44
  4. Transparence d'un objet 3D avec des matériaux
    Par pavicf dans le forum DirectX
    Réponses: 20
    Dernier message: 16/11/2006, 18h35

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