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 :

Chemin d'accès étrange add-in quand exécuté dans un vbscript [XL-2010]


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
    Ingénieur qualité méthodes
    Inscrit en
    Février 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 46
    Par défaut Chemin d'accès étrange add-in quand exécuté dans un vbscript
    Bonjour,

    Je vous explique globalement ce que je fais. J'ai un USF qui permet de lire un fichier Excel (qu'on appellera E1) qui comprends un certain nombre de données. Pour lire correctement ce fichier, je fais appel à un autre fichier Excel (E2) qui va en gros fixer correctement les paramètres de filtrage.

    Ce fichier E2 est un fichier généré par My report Builder pour extraire en gros un listing de notre ERP.

    La procédure à suivre est :
    - on rentre un code sur l'USF
    - ce code est recherché dans E2, s'il est trouvé, on extraie des infos
    - si le code n'est pas trouvé, on mets E2 à jour avec my report viewer et un add-in intégré Viewer5.xlam

    Donc dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    With WBK
                Application.Run "Viewer5.xlam!CustomMAJV5", "workbook"
    End With
    Ca fonctionne très bien quand j'exécute l'USF depuis Excel.

    Par contre, quand je l'exécute depuis un vbs, bah ça va chercher le fichier Viewer5.xlam dans "mes documents".

    Du coup, j'ai copié collé pour voir et ça a fonctionné mais je n'arrive pas à trouver comment définir correctement le chemin d'accès de ce fichier

    Je l'ai spécifié après le Application.Run, j'ai essayé d'ajouter le chemin des add-ins dans le vbs, j'ai essayé de le mettre directement dans mon code vba, rien ne semble marcher et j'ai du mal à trouver des infos sur le sujet.

    A priori, il faut une syntaxe du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    excel.AddIns.Add("C:\Program Files (x86)\PIPC\Excel\PITrendXL.xla").Installed = True
    dans le vbs. Mais le problème est que le fichier que j'ouvre avec le VBS est le E1 et non pas le E2 sur lequel je veux activer ma MAJ. Bref, je suis plus sur de rien :o

    En attendant, ça marche mais bon, c'est pas super propre.

    Merci pour votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 46
    Par défaut
    Bon, finalement je croyais que ça marchait mais en fait pas du tout :o

    En fait, même quand le application.run se faisait, c'était mon premier workbook (E1) qui était MAJ par l'add-in viewer5.xlam.

    J'ai essayé de mettre une macro dans le fichier E2 nommée MAJClasseur que j'appelle comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Application.Run WBK.Name & "!MAJClasseur"
     
    avec Set WBK = XL.Workbooks.Open(chemin_listing_article)
    ou
     
    Application.Run "CheminComplet\fichier.xlsm!MAJClasseur"
    Dans le premier cas, il cherche le fichier.xlsm dans mes documents alors qu'il n'est pas du tout à cet endroit

    Dans le second cas, il me fait une erreur 1004 en me disant que la macro est pas accessible.

    Comme dans cette macro, j'appelle viewer5.xlam qui est défini comme add-in, je me demande s'il y a pas conflit entre les deux workbooks ouvert.

    Bref, je crois que ce que j'essaye de faire est impossible '

    Des idées?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
    Dim wb As Workbook
    Set wb = Workbooks.Open("C:\Users\RDurupt\Desktop\TestRun.xls")
    Application.Run wb.Name & "!test"
    wb.Close False
    End Sub

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 46
    Par défaut
    Merci, ça a bien marché mais j'ai du mal à comprendre en quoi le fait de rajouter une couche supplémentaire Excel.application empêche la maj du bon fichier.

    A la base j'avais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim XL As Excel.Application
    Dim WBK As Excel.Workbook
     
    Set XL = New Excel.Application
    Set WBK = XL.Workbooks.Open(chemin_listing_article)
     
    Application.Run WBK.Name & "!MAJClasseur"
     
    WBK.Close
    Set XL = nothing
    Là ça va chercher dans mes documents le .xlsm

    Avec ta solution, ça fonctionne en lançant le formulaire depuis excel. Si je le lance depuis le script, il faut changer un poil le truc.

    En gros ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Dim XL As Excel.Application
    Dim WBK As Excel.Workbook
     
    Set XL = New Excel.Application
    Set WBK = XL.Workbooks.Open(chemin_listing_article)
     
    'Je récupère les données et je cherche un code en particulier'
     
    WBK.Close
     
    If (code_detected = False) then
            '==> Je mets à jour le classeur, si j'utilise WBK ici en enlevant le close avant, ça plante'
            Dim WBB As Workbook
            Set WBB = Workbooks.Open("adresse")
            Application.Run WBB.Name & "!MAJClasseur"
            WBB.Save
            WBB.Close False
     
    'Je recharge ensuite le fichier en suivant exactement la même procédure qu'au départ avec XL.worbooks etc...
    'Je recherche le code à nouveau puis je quitte tout
    J'espère être assez compréhensible mais j'avoue avoir du mal à comprendre (alors que ça doit être simple )

  5. #5
    Invité
    Invité(e)
    Par défaut
    quel est la valeur de chemin_listing_article?

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 46
    Par défaut
    C'est une adresse serveur de type \\serveur.loc\\data\travail\dossier1\dossier2\dossier3\fichier.xlsm

    edit : maintenant que tu dis ça, j'ai effectivement mon adresse chemin_listing = \\serveur.loc\etc...

    et l'autre directement avec une nomination Z:\

    Je vais tester voir si ça vient de là. Pourtant avec toutes les autres fonctions j'utilise ce type d'adresses et ça va bien. J'ai pas vu de paramètres spécifiques pourtant pour workbooks.open

    edit2 : j'ai testé en mettant directement chemin_listing_article et aussi l'adresse \\serveur.loc\ et les deux ont fonctionné.

    La seule différence que je voie, c'est vraiment le New Excel.application en plus qui ne passe pas dès lors qu'on lance par le vbscript.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/08/2013, 22h59
  2. [MacCaml] Chemin d'accès au fichier exécuté
    Par Digimag dans le forum Caml
    Réponses: 0
    Dernier message: 19/02/2011, 12h36
  3. Réponses: 4
    Dernier message: 23/10/2010, 22h55
  4. erreur d'exécution '76' chemin d'accès introuvable
    Par ensmaitk dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/04/2007, 17h31
  5. Chemin d'accès au clip et scenario en flash
    Par Gential dans le forum Flash
    Réponses: 4
    Dernier message: 28/02/2003, 10h10

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