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

Macros et VBA Excel Discussion :

[E-00]lancement application par fonction shell


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 73
    Par défaut [E-00]lancement application par fonction shell
    bonjour,
    j'ai un petit probleme en voulant lancer une application externe a excel en utilisant la fonction shell. Voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub B_maj_SB_Click()
    Dim reponse As Variant
    Dim plop As Variant
    MsgBox "Lancement de impromptu"
    plop = Shell("R:\CMM\Raphael\imp SB.imr", 1)
    AppActivate plop
    reponse = MsgBox("avez vous fais l'extraction impromptu?", 4)
    If reponse = vbYes Then
    Call maj_sb
    Else
    MsgBox "faite la et relancez la macro " & vbNewLine & "merci"
    End If
    End Sub
    en executant cette macro il me dis :
    erreur execution : 5
    argument ou appel de procédure incorrect
    je suis pourtant parti de l'exemple de l'aide..

    merci pour votre aide

    ps: j'utilise excel 2000

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,

    je pense que le problème se situe peut-être au niveau des quotes.

    De plus, je préciserais le nom complet de imp qui doit être imp.exe, histoire d'être ceratin de ce que tu lances.

    Regarde ici pour une exemple avec les quotes (il faut avancer dans le post pour shell )

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 73
    Par défaut
    donc si j'ai bien compris avec la commande shell, on ne peux que lancer des *.exe? moi je souaite lancer mon fichier qui s'appel : imp sb.imr ca reviendrai a lancer un Plop.doc
    est-ce possible de le faire ?

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Citation Envoyé par imaril Voir le message
    donc si j'ai bien compris avec la commande shell, on ne peux que lancer des *.exe?
    Je n'ai pas dit cela.

    Commence par expliquer clairement ce que tu veux ouvrir comme fichier et ou application et avec quelle commande ou programme.

    N'oublie pas qu'un programme ou une commande à toujours une extension. Il faut la préciser dans ta réponse.

    je te dirai ensuite quel moyen utiliser.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 73
    Par défaut
    alors, je m'explique...
    en fait je fais une macro qui va permetre la mise a jours d'un classeur a partir d'une base de donnée externe.
    Pour cela j'utilise un logiciel d'extraction de cette BDD qui s'appel impromtu.
    Ce logiciel permet de generer des classeurs et de les enregistrer en format .imr.
    Je souhaite donc lancer ce classeur pour que le futur utilisateur ait juste à faire l'extraction en .xls a partir d'impromtu qui se lancera a partir d'excel.

  6. #6
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Re,

    tu n'a pas répondu à ma question, qui était technique et pas fonctionnelle.

    Dis moi-donc excatement ce que tu dois faire !

    Exemple : Ouvrir le fichier excel tutu.xls du répertoiure c:\gdm
    lancer le programme impromptu.exe du répertoire c:\toto avec le parametre c:\data\imp.imr

    You follow me ?

    Sinon j'ai cherché dans le forum sur imprompu et j'ai trouvé ceci

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 73
    Par défaut
    je pense avoir compri ce que tu recherche
    en fait voila :
    je souhaite ouvrir le fichier imp sb.irm qui se situe dans le rep "R:\CMM\Plop\"
    avec le logiciel impromtu qui se trouve dans le repertoir : "c:\prog\impomptu\"

    par contre je ne sais pas si on peux rentrer en parametre d'impromtu le nom du fichier a ouvrir...

  8. #8
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Si j'ai bien compris, tu cherches à ouvrir le fichier R:\CMM\Raphael\imp SB.imr

    La fonction Shell ne risque pas de l'ouvrir sans lui dire avec quel logiciel elle doit le faire (et tu ne le mentionnes pas dans son appel ! Comment veust-u qu'elle devine ?...).

    Alors :
    soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ret = Shell("nom_de_ton_exe-applicable nom_du_document_géré",1)
    Soit (je te le recommande) :
    oublier l'exe nécessaire (pour autant que le logiciel soit bien présent sur la machine) et utiliser la fonction Shell Execute de l'Api de Windows, ainsi :
    Tout en haut de ta page de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private 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
    et dans l'évènement de ton choix :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim monfichier As String
     monfichier = "d:\essai.txt"
     ShellExecute 0, vbNullString, monfichier, vbNullString, "C:\", 1
    ou tu remplaces "d:\essai.txt" par le chemin complet du fichier à ouvrir

  9. #9
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour Ucfoutu,

    je te laisse le flambeau.

    Amitiés. Godz

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 73
    Par défaut
    merci ucfoutu
    mais il me reste une question , avec ta méthode ( la deuxiemme) comment fait-on pour que l'applcation lancée reste au premier plan et que la macro s'arete tant que ce fichier est ouvert ? enfin qu'on puisse faire ce qu'on veux sur impromptu puis revenir sur excel et que la macro continue ?

    ps: merci Godzestla pour le temps passer sur mon problème

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/07/2011, 12h16
  2. Lancement Application par le code
    Par vandrie dans le forum IHM
    Réponses: 4
    Dernier message: 12/05/2009, 20h08
  3. lancement application par une touche
    Par 83stef dans le forum Java ME
    Réponses: 2
    Dernier message: 15/10/2008, 21h51
  4. Réponses: 4
    Dernier message: 03/10/2008, 15h03
  5. Réponses: 12
    Dernier message: 24/04/2006, 23h19

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