Lancement excel (vba) depuis vb6 [Résolu]

Signaler
Messages postés
61
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
21 août 2007
-
Messages postés
61
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
21 août 2007
-
Bonjour,

Alors ma question porte sur un mix vba vb6...

J'ai un code en vba sur excel qui me permet à l'ouverture du fichier excel de faire apparaitre une input box qui me propose d'ouvrir un doc word
Jusque là ça va...
Mon probleme c'est que je veux faire de ce code une petite appli sur vb6 ...
Or quand je lance l'appli, l'input box apparait bien mais ma feuille excel non.. Ce qui se passe c'est que si je souhaite ouvrir un doc word... et bien il l'ouvre bien mais il n'ouvre pas le document excel...
Sur excel vu que pour que la macro se lance j'étais obligé d'ouvrir excel cela ne posait pas de probleme mais là si...

Voici mon code quelqu'un peut il m'aider ?

PrivateSub Workbook_Open()
 
Dim Retour AsString
Dim WordApp As Word.Application
Dim WordDoc1, WordDoc2, WordDoc3, WordDoc4, WordDoc5 As Word.Document
 
Set WordApp = CreateObject("Word.Application")
 
   Retour = InputBox("La description de quelle comparaison souhaitez vous avoir ? ", "Information", "Client? Clause B ?....", 10, 10)
If Retour = "Client"Then
      WordApp.Visible = True
    Set WordDoc1 = WordApp.Documents.Open("O:\...doc", ReadOnly:=True)
 
 
ElseIf Retour = "Clause Beneficiaire"Then
    WordApp.Visible = True
Set WordDoc2 = WordApp.Documents.Open("O:\...doc", ReadOnly:=True)
 
 
ElseIf Retour = "Souscript assuré"Then
    WordApp.Visible = True
Set WordDoc2 = WordApp.Documents.Open("O:\...doc", ReadOnly:=True)
 
 
ElseIf Retour = "Frais acq"Then
    WordApp.Visible = True
Set WordDoc2 = WordApp.Documents.Open("O:\...doc", ReadOnly:=True)
 
ElseIf Retour = "Evenement de gestion"Then
    WordApp.Visible = True
Set WordDoc2 = WordApp.Documents.Open("O:\...doc", ReadOnly:=True)
 
ElseIf Retour = "Derog op"Then
    WordApp.Visible = True
Set WordDoc2 = WordApp.Documents.Open("O:\...doc", ReadOnly:=True)
 
 
ElseIf Retour = "Derog Non op"Then
    WordApp.Visible = True
Set WordDoc2 = WordApp.Documents.Open("O:\...doc", ReadOnly:=True)
 
ElseIf Retour = ""Then
Call vide
Else
Call nimportequoi
 
EndIf
EndSub
PrivateSub vide()
 
  reponse = MsgBox("vous n'avez rien inscrit! si vous ne voulez rien ouvrir cliquez sur annuler sinon inscrivez le nom du fichier", vbRetryCancel, "Attention")
  If reponse = vbRetry Then
Call Workbook_Open
EndIf
 
EndSub
PrivateSub nimportequoi()
info = MsgBox("Cette comparaison n'existe pas ou vous l'avez mal orthographié!Attention à la casse si vous ne voulez rien ouvrir cliquez sur annuler sinon inscrivez le nom du fichier", vbRetryCancel, "Attention")
If info = vbRetry Then
Call Workbook_Open
EndIf
EndSub
 
 

7 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
49
Salut,
Donc lorsque que tu utilises ce code, tu n'as pas de fenetre Excel visible dans la barre des taches????
Essaie peu etre
Set appExcel = CreateObject("Excel.Application")
appExcel.Visible = True
Set wbExcel = appExcel.Workbooks.Open("C:\Test.xls")
Set wsExcel = wbExcel.Worksheets(1)
, ----
[code.aspx?ID=41455 By Renfield]
Mais sans grande conviction.
Chez moi je viens de tester et cela semble marche j'ai bien Un Excel avec mon Classeur + Une instance de Word qui s'ouvre.
D'ailleurs pas d'intéret d'ouvrir Word avant que l'utilisateur est entrer son choix (mais là ce n'est que mon avis)

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
49
Salut,
Je suis  désolé mais je n'arrive pas à comprendre ton problème.
Si tu veux ouvrir un Classeur depuis VB6
Regarde ce snippet
Si c'est pas cela il faut expliquer mieux car comment ouvrir un classeur meme depuis VB6 sans ouvrir Excel (à la rigueur tu peux rendre Excel invisible (mias ca cachera aussi le classeur)
Bref il nous manque peu être quelques précision
@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
61
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
21 août 2007

Alors,

En faite sou excel j'ai mon bout de code qui me permet dés lors que j'ouvre une fenetre d'afficher une input box. Cette input box me permet a mon tour de choisir l'ouverture de certains documents...

Donc quand j'ouvre mon fichiers excel ( manuelllement)  et que je tappe le nom du fichiers (word) dans ma inputbox, sur mon bureau j'ai
et excel et word d'ouvert..

Maintenant, lorsque je lance l'ouverture de ce fichier excel depuis vb6 ça ne fonctionne pas car seule l'input box apparait ( et pas le fichiers excel) alors l'input box me permet bien d'ouvrir mon doc word mais mon fichier excel non.... et moi je souhaite que ce fichier s'ouvre completement au lancement de l'appli et pas seulement l'input box

Je ne sais pas si c'est plus clair en tout cas je te réexplique sans probleme

Merci de ton aide...
Messages postés
61
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
21 août 2007

pour la premiere phrase que j'ai écris...
Sous excel j'ai mon bout de code qui me permer dés lors que j'ouvre une fentre , c'est pas une fenetre
C'est dés lors que j'ouvre le fichier excel qui contient ce code... a son ouverture j'ai la inputbox
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
49
Salut,
Dans ce cas plutot que de nous montrer le code qui est supposé fonctionner d'après ce que tu nous  dit, montre nous plutot comment tu ouvres ton fichier (+ Excel) depuis VB6

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
61
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
21 août 2007

Alors je pense que le probleme provient du code vba
En effet, il est normale qu'il n'y ait pas de probleme lorsque je le lance depuis excel puisque pour le lancer il faut que j'ouvre mon fichier excel... ( il reste donc ouvert tout le temps...)

Voici le code sous vb6

Sub Main()
Dim appExcel As Excel.Application
Dim wbExcel As Excel.Workbook
Dim wsExcel As Excel.Worksheet


Set appExcel = CreateObject("Excel.Application")
Set wbExcel = appExcel.Workbooks.Open("O:\DB\Procedure_comparaison.xls")
Set wsExcel = wbExcel.Worksheets(1) 


End Sub
Messages postés
61
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
21 août 2007

Euh quoi dire d'autre que merci bcp... je suis là dessus depuis hier...