Lancer une application a partir de VB [Résolu]

drlud 3 Messages postés mardi 12 février 2008Date d'inscription 14 février 2008 Dernière intervention - 12 févr. 2008 à 22:08 - Dernière réponse : cs_EBArtSoft 4530 Messages postés dimanche 29 septembre 2002Date d'inscription 23 décembre 2014 Dernière intervention
- 14 févr. 2008 à 19:51
Bonjour,
Je suis débutant en vb et je dois lancer une application, apres quelques recherches j'y suis parvenu en utilisant la fonction shell. Mon probleme est le suivant : L'application que je dois lancer ne changera pas de nom "Modélisation Catia" mais par contre son emplacement va changer, car il va etre importé sur clef USB mon fichier excel et mon fichier Catia vont donc se retrouver sur des différents postes. Ainsi, l'emplacement défini dans la fonction shell sera different de l'emplacement réel du fichier. Je souhaiterais donc rendre l'emplacement "dynamique" de sorte a trouver mon fichier catia a coup sur. Merci a tous pour votre aide.

Code :

Private Sub CommandButton1_Click()
    Lancercatia.Hide
    ActiveWorkbook.Save
    Dim wshShell
    Set wshShell = CreateObject("wscript.shell")
    'Execution de Catia
    'Exemple - ouverture du différentiel
    wshShell.Run "C:\Users\Ludo\Desktop\VB\test\Batit.CATPart"
Application.Quit
End Sub
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_EBArtSoft 4530 Messages postés dimanche 29 septembre 2002Date d'inscription 23 décembre 2014 Dernière intervention - 14 févr. 2008 à 19:51
3
Merci
Pour remercier MPi clique aussi sur reponse accepté !

;)

E.B.

Merci cs_EBArtSoft 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de cs_EBArtSoft
cs_ghuysmans99 3983 Messages postés jeudi 14 juillet 2005Date d'inscription 30 juin 2013 Dernière intervention - 12 févr. 2008 à 22:27
0
Merci
ShellExecute ?
_______________________________________________________________________
VB.NETis good ...VB6is better
Commenter la réponse de cs_ghuysmans99
cs_MPi 3869 Messages postés mardi 19 mars 2002Date d'inscription 25 mai 2018 Dernière intervention - 12 févr. 2008 à 23:50
0
Merci
ShellExecute serait effectivement une bonne solution.

Et tu pourrais changer le chemin par
ActiveWorkbook.Path & "\NomDuFichierCatia"

à la condition que le fichier Catia soit dans le même répertoire que le fichier Excel... peu importe qu'il soit sur un disque dur ou clé USB.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi
cs_EBArtSoft 4530 Messages postés dimanche 29 septembre 2002Date d'inscription 23 décembre 2014 Dernière intervention - 13 févr. 2008 à 08:53
0
Merci
Place le nom du fichier dans une variable et appel shell ! Sinon je ne vois pas comment faire ton pc n'est pas devin et quand bien meme il le serait qui lui dit qu'il execute la bonne instance de ton application !

@+

E.B.
Commenter la réponse de cs_EBArtSoft
drlud 3 Messages postés mardi 12 février 2008Date d'inscription 14 février 2008 Dernière intervention - 13 févr. 2008 à 20:18
0
Merci
Merci pour ton aide MPI, c'est exactement ce que je veux faire, pourrais tu m'écrire le morceau de code avec ActiveWorkbook.Path & "\NomDuFichierCatia"

Encore merci ( la fin est proche ;))
Commenter la réponse de drlud
cs_MPi 3869 Messages postés mardi 19 mars 2002Date d'inscription 25 mai 2018 Dernière intervention - 13 févr. 2008 à 23:41
0
Merci
Ben euhhh... je ne sais pas vraiment... C'est toi qui a les programmes et le code...
Je n'y connais rien à Catia, mais bon...

Peut-être peux-tu simplement utiliser ta méthode et changer le chemin pour celui que je t'ai proposé.
wshShell.Run ActiveWorkbook.Path & "\Batit.CATPart"
si Batit.CATPart est le nom du fichier

Pour utiliser ShellExecute, tu dois déclarer l'API, parce que c'en est une...
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal Hwnd As Long, _
     ByVal lpOperation As String, _
     ByVal lpFile As String, _
     ByVal lpParameters As String, _
     ByVal lpDirectory As String, _
     ByVal nShowCmd As Long) As Long

Tu inscris Private devant si tu la déclares dans la feuille, sinon tu mets ça dans un module (préférable à mon sens...)

Cette API démarrera l'application par défaut, donc CATIA, je présume...(?)
Donc, pour l'appel, tu inscris
Dim Tmp As Long
Tmp = ShellExecute (0, "Open", ActiveWorkbook.Path & "\Batit.CATPart", 0&, 0&, vbNormalFocus) 'toujours en présumant que Batit.CATPart est bien le nom du fichier à ouvrir.

En principe, si je ne me suis pas trompé, ça devrait fonctionner ...
Le fait d'utiliser la variable Tmp ne sert à rien en fait...  Mais comme l'API est une Function, et qu'une Function devrait retourner une valeur, je l'utilise par principe...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi
drlud 3 Messages postés mardi 12 février 2008Date d'inscription 14 février 2008 Dernière intervention - 14 févr. 2008 à 00:03
0
Merci
Merci Beaucoup!!!!
Ca marche super bien, je mets a disposition le code pour qu'il puisse servir d'exemple
Encore Mpi pour ton aide
Bonne continuation a vous tous

Private Sub CommandButton1_Click()
Lancercatia.Hide
ActiveWorkbook.Save
Dim wshShell
Set wshShell = CreateObject("wscript.shell")
'Execution de Catia
'Exemple - ouverture du différentiel
wshShell.Run ActiveWorkbook.Path & "\Batit.CATPart"
Application.Quit
End Sub
Commenter la réponse de drlud

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.