Soucis entre le VBA d'XL et le VB6

cs_nevil Messages postés 10 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 31 juillet 2007 - 26 juil. 2007 à 23:53
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 27 juil. 2007 à 08:02
Bonsoir à toutes et  à tous,

Alors voila, je suis entrain de créer une application en VBA (sous XL) qui fonctionne pour le mieux, et j'ai donc voulu l'améliorer pour faire en sorte que les futurs utilisateurs ne soient pas obliger de lancer un fichier XLS mais un fichier EXE; c'est la que le VB6 intervient.
J'utilise le code suivant pour ouvrir mon fichier XL par VB6:

Dim chemin, ouverture As String


chemin = App.Path


ouverture = "" & chemin & "\MonFichier.xls"


Dim xlfile, xlapp As Object


Set xlapp = CreateObject("Excel.application")

    Set xlfile = xlapp.workbooks.open("" & ouverture & "") ' Mon fichier s'ouvre
    xlapp.workbooks.Close


    Set xlapp = Nothing
    Set xlfile = Nothing
    Unload Form1


En fait, mon fichier XL s'ouvre très bien, l'Uf dans mon évènement Worksbook_open se lance impeccablement bien, mais après cela, plus rien ne fonctionne. Si j'ouvre mon fichier XLS simplement, tout fonctionne parfaitement, mais si je le fais par l'intermédiaire de VB6, ca fait n'importe quoi.
Quelqu'un aurait une explication ou encore mieux, une solution ??

Merci

6 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
27 juil. 2007 à 00:37
Salut,

<hr />
Dim chemin As String, ouverture As String    ' sinon, c'est variantchemin = App.Path

ouverture = "" & chemin & "\MonFichier.xls"    ' "" &; c'est inutile

Dim xlfile As Object, xlapp As Object    ' As Object, ou As Excel.WorkBook, sinon, c'est variant

Set xlapp = CreateObject("Excel.application")

    Set xlfile = xlapp.workbooks.open("" & ouverture & "") ' Mon fichier s'ouvre
    xlapp.workbooks.Close

    Set xlapp = Nothing
    Set xlfile = Nothing
    Unload Form1

<hr />
Bon, ça c'était pour corriger tes erreurs, sinon, si c'est juste pour lancer le fichier XL, pour ne pas recourir à la fonction ShellExecute ??
En une ligne, c'est lancé !

@++

<hr width="100%" size="2" />( Nouveau forum : Exclusivement Office & VBA/STRONG>
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
27 juil. 2007 à 00:38
    Set xlfile = xlapp.workbooks.open("" & ouverture & "") ' Mon fichier s'ouvre

>> inutile aussi
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
27 juil. 2007 à 01:02
xlapp.workbooks.Close
xlfile.close suffirait

Pour ton problème, je pense que tu devras utiliser les Forms de VB plutôt que d'utiliser les UserForms du classeur Excel.

Il faut voir la différence entre lancer une application Excel et la "travailler" à partir de VB.
Si tu veux utiliser VB, sers-toi seulement des données qu'Excel contient.
Tout ce que contient tes UserForms devrait être transposé dans une ou des Forms de VB en ajustant le code là où il faudra.

MPi
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
27 juil. 2007 à 01:04
En fait, je ne pense pas que j'aie été assez clair dans mon explication ...

L'interaction que tu créais avec tes Userforms et tes feuilles dans Excel doit être gérée à partir de VB. C'est VB qui devient le maître à penser.

MPi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_nevil Messages postés 10 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 31 juillet 2007
27 juil. 2007 à 07:18
Merci, je vais tenir compte de vos explications: le truc c'est que je suis nvice en VB6 et surtout pour gérer XL.
Mais je pense bien que ca vient du fait que c'est VB qui prend le relais et qui devient donc, maitre.
Je vais tenter de reproduire mon appli en VB, mais c'est pas gagner.
J'ai fait cette appli en 1 semaine sous VB6, mais il va bien m'emn falloir 5 ou 6 pour VB vu mon niveau.
Mais les challenges ca me connait.
Je vous tiens au courant de mon avancement, et dans tous les cas, merci à tous.

Nevil
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
27 juil. 2007 à 08:02
la question est surtout, que fait la procédure dans ton Executable, à part ouvrir ton fichier Excel ?
Si rien, ShellExecute ^^

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0
Rejoignez-nous