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 :

VBA : Macro ne fonctionne qu'après "enregistrer sous"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 20
    Par défaut VBA : Macro ne fonctionne qu'après "enregistrer sous"
    Bonjour,

    j'ai réalisé une macro pour lancer un .exe se trouvant dans le même dossier que mon fichier excel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Executable()
     
        Dim strProgramName As String
     
        strProgramName = ThisWorkbook.Path & "\application.exe"
     
        Call Shell("""" & strProgramName & """", vbNormalFocus)
     
    End Sub
    Le problème était que dans un premier temps, cette application .exe ne se lançait, via la macro, que lorsque je fais "enregistrer sous" au préalable ; certainement que cela me permet de définir le dossier dans lequel je travaille.

    J'ai donc rajouté un ChDir (ThisWorkbook.Path) en haut de mon code pour définir le dossier de travail et tout marchait parfaitement...

    Malheureusement, j'ai déplacé mon dossier de travail (qui contient .exe et fichier excel) d'emplacement et j'ai de nouveau le même problème, même avec la commande ChDir en amont. Je dois faire "enregistrer sous" avant de lancer ma macro pour que cette dernière puisse lancer correctement le .exe....

    Pouvez-vous m'aider svp ?

    Bien cordialement.

    Nicolas

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Peut-être pas lié à ton pb mais tu as une " de trop de part et d'autre.
    eric

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour,
    1) Un classeur n'a de chemin que s'il a DEJA été créé dans un dossier. Et il n'y a été créé que s'il y a été sauvegardé au moins une fois.
    2) ta macro ne pourra trouver dans ce dossier l'exe que tu veux lancer par ton instruction que si (évidemment) l'exe concerné s'y trouve également.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour unparia,

    C'est ce que j'ai pensé au début. Le pb c'est qu'il a déplacé son dossier, donc il y est.
    eric

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour eriic
    Bien vu. Cet aspect m'avait échappé.
    Nous voilà donc confronté à un véritable mystère. Et je ne crois pas à la génération spontanée.
    - J'ai essayé en vain de reproduire ce problème. Application.path n'est pas troublé par le déplacement du dossier dans l'explorateur, y compris sans ce chdir
    - Invitons alors Nicolas149 à :
    a) Nous montrer ici toutes les procédures (de sub jusqu'à end sub) éventuellement présentes et donc exécutées lors de sauvegardes.
    b) rechercher partout (feuilles et modules de code) l'existence éventuelle d'une chaîne de caractères définissant le seul chemin (sans le nom du fichier) de l'exe à appeler. Et de nous communiquer le résultat de cette recherche.
    Il doit bien y avoir une explication quelque part dans son projet.

    EDIT : il serait par ailleurs utile que Nicolas149 :
    - nous précise très exactement ce qui ne fonctionne à nouveau qu'après sauvegarde et ne fonctionne pas sans. Cette information pourrait en effet révéler certains aspects (utilisation, par exemple, d'un fichier texte écrit à la sortie)
    - nous précise également si son "enregistrer sous" est fait ou non dynamiquement (par son code) . Et pourquoi "enregistrer sous" et non simplement "enregistrer"
    - si dynamiquement (par code) : par quelle méthode : Save ?, SaveAs ?, SaveCopyAs ? . Le code utilisé pour cet enregistrement pourrait utilement être montré ici.

    PS : j'ai par ailleurs beau retourner les choses dans tous les sens à propos de ce chdir dont il dit qu'il permettait avant un bon fonctionnement : je ne vois qu'une seule explication plausible si tel était vraiment le cas : l'exe lui-même travaille sur un curdir (et le répertoire courant n'est pas toujours forcément celui du classeur ouvert)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Ton fichier est sur le lecteur réseau partagé?

    Si oui je te rappel qu'un lecteur partagé digne de ce nom détient un titre de propriété et seule le créateur détient les droits de administrateur!
    Dernière modification par Invité ; 12/04/2016 à 08h25.

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

Discussions similaires

  1. Créer un lien hypertexte après voir enregistrer sous PDF
    Par babou41287 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 02/01/2012, 12h31
  2. [XL-2003] MFC - VBA -Macro ne fonctionne pas
    Par jorisphi dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 07/01/2010, 12h22
  3. vba macro fonctionne
    Par ferronimus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/07/2007, 11h10
  4. [Excel/Macro] Envoi d'Email après enregistrement
    Par Myogtha dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 30/11/2005, 09h15

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