Comment lancer un programme à partir de VBA [Résolu]

AnthonyCrayssac 7 Messages postés jeudi 15 juin 2006Date d'inscription 19 juin 2006 Dernière intervention - 15 juin 2006 à 10:17 - Dernière réponse : Ancestroplaced 10 Messages postés vendredi 20 février 2009Date d'inscription 3 octobre 2013 Dernière intervention
- 8 mars 2009 à 23:34
Bonjour, je viens de créer dans une liste les fichiers d'un document (.PDF,DOC,XLS, JPG, PPT, PPS, GIF)
J'aimerai que par un double clic sur ma liste cela lance le programme adéquat. Pour cela je pense devoir faire un CASE pour chaque extention.
Qu'elle commande dois-je executer ?
Pour le moment, j'utilise Shell, mais comme l'adresse de l'appication (Word, Excel, Pait,...) n'est pas connue, comment la retrouvé en utilisant le registre.
Par exemple pour trouver l'emplacement d'Adobe Reader : HKEY_CLASSES_ROOT\AcroExch.Document\shell\open\command
et là on obtiend l'adresse.

J'espère avoir été clair, sinon, demandé moi des précisions.

L'eau ne sait pas nager, la preuve elle coule!
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 19 juin 2006 à 12:32
3
Merci
Effectivement, il semblerait que la commande shell ne demande que des executables.


Voilà un source qui devrait régler ton problème :


http://www.vbfrance.com/codes/SHELLANDWAIT-EXECUTER-APPLICATION-ATTENDRE-FIN-RENVOYER-SON-CODE_34867.aspx

Merci cs_rt15 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_rt15
AnthonyCrayssac 7 Messages postés jeudi 15 juin 2006Date d'inscription 19 juin 2006 Dernière intervention - 15 juin 2006 à 17:40
1
Merci
Hélas cela ne fonctionne toujours pas.
J'ai quand même modifié le nom du dossier avec espace par sécurité.
Toujours la même erreur : Argument ou appel de procedure incorrect !

le code :

Private Sub LS_FichierJoint_DblClick(Cancel As Integer)
    'Lancement du fichier sélectionné
    Dim chemin As String
    chemin = "D:\BTS\Stage_Première_Année\FichiersJoints" & LS_Projets.Value & "" & LS_FichierJoint.Value
    Shell (chemin)
End Sub

PS : j'ai aussi tenté le Call Shell (chemin)

Pour cette commande, il faut lui fournir l'adresse du programme... mais comment la trouver quelque soit le pc.
Merci quand même rt15 d'éssayer de m'aider !

L'eau ne sait pas nager, la preuve elle coule!
Commenter la réponse de AnthonyCrayssac
AnthonyCrayssac 7 Messages postés jeudi 15 juin 2006Date d'inscription 19 juin 2006 Dernière intervention - 15 juin 2006 à 10:39
0
Merci
J'ai oublié de précisé que je travaille sous VBA Access 2003.
C'est dommage que l'on puisse pas éditer ses messages ...

L'eau ne sait pas nager, la preuve elle coule!
Commenter la réponse de AnthonyCrayssac
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 15 juin 2006 à 13:14
0
Merci
Bonjour,


Essaye shell sur tes fichiers : windows devrait les ouvrir avec le prog adéquat.
Commenter la réponse de cs_rt15
AnthonyCrayssac 7 Messages postés jeudi 15 juin 2006Date d'inscription 19 juin 2006 Dernière intervention - 15 juin 2006 à 14:03
0
Merci
Hélas cela ne fonctionne pas.
Voici mon code :

Private Sub LS_FichierJoint_DblClick(Cancel As Integer)
    'Lancement du fichier sélectionné
    Dim chemin As String
    chemin = "D:\BTS\Stage Première Année\FichiersJoints" & LS_Projets.Value & "" & LS_FichierJoint.Value
    Shell (chemin)
End Sub

Comment faire ??? lol

L'eau ne sait pas nager, la preuve elle coule!
Commenter la réponse de AnthonyCrayssac
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 15 juin 2006 à 15:56
0
Merci
Commence par écrire :

Call Shell(chemin)


ou


Shell chemin


J'ai fait cette erreur assez longtemps moi aussi.


Ensuite, le chemin contient des espaces, il faut donc le mettre entre guillemets doubles :

chemin = """" & "D:\BTS\Stage Première Année\FichiersJoints"
& LS_Projets.Value & "" & LS_FichierJoint.Value & """"
Commenter la réponse de cs_rt15
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 16 juin 2006 à 12:42
0
Merci
Bonjour,


Je plaisantais pas quand je disais que :
Shell(chemin)
Ce n'est pas du VB6 valide.

C'est faux.

Ca fait de la merde.

Ca sert à rien.

Ca plante.

Ca ne fonctionne pas.

This is not good.

Shell chemin

Ou


Call Shell(chemin)

C'est vrai que je ne suis plus sûr que shell
accepte les nom de fichier non executables.... Sinon, il faudra se
reporter sur l'API ShellExecute qui les accepte quoi qu'il arrive.
Commenter la réponse de cs_rt15
AnthonyCrayssac 7 Messages postés jeudi 15 juin 2006Date d'inscription 19 juin 2006 Dernière intervention - 19 juin 2006 à 08:32
0
Merci
Avec les deux possibilités, cela ne fonctionne pas, je recherche a savoir comment lancer le programme me permettant de lire le fichier (word, ...) sans connaitre précisément l'emplacement de l'application.

L'eau ne sait pas nager, la preuve elle coule!
Commenter la réponse de AnthonyCrayssac
Ancestroplaced 10 Messages postés vendredi 20 février 2009Date d'inscription 3 octobre 2013 Dernière intervention - 5 mars 2009 à 15:00
0
Merci
Bonjour, je voulais savoir si anthony avait réussis à résoudre son problème?
Je suis quasiment au même point que toi. Par contre je suis open office base, j'arrive à modifier certains codes pour que ça fonctionne.
Voici le code que j'utilise:
Declare Function ShellExecuteA Lib "shell32" (ByVal hwnd As Long, ByVal LPFile As String, ByVal PathFile As String, ByVal Other As String, ByVal Other2 As String, ByVal Param As Long) As Long<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

  

                Private sub MyAppID

                MyAppID = ShellExecuteA(0, "Open", "H:\Stage\INDEXAGE\ACCESS\Fichier Exemple\100000.odt", "", "", 10)

End Sub

Il faudrait que le "100000.odt" puisse être remplacé par le contenu d'une TextBox de mon Formulaire. J'ai essayé en déclarant la TextBox mais ça ne fonctionne pas, ainsi que avec le symbole &.

Merci de votre aide
Commenter la réponse de Ancestroplaced
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 5 mars 2009 à 16:29
0
Merci
Salut,

Pose ta question dans un nouveau thread, et précise bien que tu travailles en OooBasic (Si c'est le cas bien sûr).

Ton problème est plus lié à OooBasic et la gestion de ces TextBox qu'à un lancement d'application.

A tout hasard, tu as essayé :

MaTextBox.Text

?
Commenter la réponse de cs_rt15
Ancestroplaced 10 Messages postés vendredi 20 février 2009Date d'inscription 3 octobre 2013 Dernière intervention - 8 mars 2009 à 23:34
0
Merci
J'ai ouvert un nouveau sujet de discutions
http://www.vbfrance.com/forum/sujet-LIAISON-ENTRE-OPEN-OFFICE-BASE-AUTOCAD_1280204.aspx

Je crois que MaTextBox.Text ça ne marche pas non plus mais je l'est peut-être pas écrit au bon endroit.
Commenter la réponse de Ancestroplaced

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.