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

VBA Access Discussion :

Passage de paramètre depuis Access vers Excel


Sujet :

VBA Access

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Par défaut Passage de paramètre depuis Access vers Excel
    Bonjour, j'espère que tout va bien pour vous!

    De mon côté j'ai un petit soucis avec Access! J'aimerais piloter excel depuis Access mais je n'arrive pas du tout à passer un paramètre (un nom de fichier sous la forme d'une variable String) à Excel.

    En fait j'extrais une grosse quantité de données depuis Access et j'exporte le tout dans un fichier Excel. Ensuite, afin d'utiliser ces données, je synthétise les informations dans un tableau que je prends dans un autre fichier Excel et que je copie dans mon fichier d'exportation. Seulement je n'arrive pas à indiquer à Excel dans quel fichier il doit coller ce fameux tableau.

    Voivi la requête Âccess dans laquelle j'exécute les macros Excel:

    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
    22
    23
    24
    25
    26
    27
    Private Sub Mise_en_page_export(tx_fichier As String)
        Dim xlApp As Excel.Application
        Dim xlSheet As Excel.Worksheet
        Dim xlBook As Excel.Workbook
        Dim i As Long
        Dim vtemp As Variant
     
        ' Initialisation des variables
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Open("P:\Commun\Tables temporaires\Stock_libre\Stocks_libres_FORMULES_CALCUL.xls")
     
     
        'copier la matrice de calcul contenant les formules pour tableau de consolidation
        xlBook.Application.Run ("copier_tableau_de_consolidation")
        xlBook.Save
     
        'coller la matrice de calcul dans le fichier fraîchement créé
        xlBook.Application.Run ("coller_tableau_de_consolidation" ,tx_fichier)
     
     
       'Code de fermeture
        xlBook.Save
        xlApp.Quit
        Set xlSheet = Nothing
        Set xlBook = Nothing
        Set xlApp = Nothing
    End Sub
    et voici le code des 2 macros que j'ai dans Excel :

    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
    Sub copier_tableau_de_consolidation()
    '
    ' copier_tableau_de_consolidation Macro
    ' Macro enregistrée le 06/10/2008 par Julien Braun
    '
    '
        Application.DisplayAlerts = False
        Range("D1516:AQ1537").Select
        Selection.Copy   
    End Sub
     
    Sub coller_tableau_de_consolidation(fichier As String)
     
        ChDir "P:\Commun\Tables temporaires\Stock_libre"
        Workbooks.Open Filename:=fichier
     
        Range("D1516").Select
        ActiveSheet.Paste
     
    End Sub
    J'espère que je suis à peu près clair et que mon charabia est compréhensible! Quelqu'un aurait-il donc une idée pour m'aider à résoudre ou contourner mon soucis?

    D'avance merci et et bonne journée

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Regardes du coté de la syntaxe de Application.Run, tu peux passer des arguments.

    Un exemple avec une fonction : http://excel.developpez.com/faq/index.php?page=VBA#Run

    Philippe

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Par défaut
    Bonjour Philippe,

    Merci pour ta réponse! J'ai jeter un coup d'oeil mais je n'arrive tjs pas à passer mon paramètre! Apparemment, Access veut une expression de la forme :

    UneVariableQuelconque = Application.run(...)
    car Access me retourne toujours une erreur genre : il manque un "="!

    Or je ne veux pas exécuter une fonction mais bien une procédure!
    Je sèche!!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Je n'ai jamais eut besoin de l'utiliser, car quand je vais dans Excel à partir d'Access, je gère tout dans Access.

    Enlève les parenthèses pour voir.

    Philippe

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Par défaut
    Alors,

    Ca avance gentiment merci! Maintenant, sans les parenthèses, Access semble accepter de lancer ma macro Excel avec mon paramètre...

    Bon ça passe mais il semblerait que j'aie un problème avec mes macros Excel, elles ne font pas tout à fait ce que je veux mais je vais y travailler avant de crier au secours... en tout cas merci pour la combine des parenthèses je n'y aurait jamais pensé!

    Alors à toute peut-être

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

Discussions similaires

  1. [Toutes versions] [Tutoriel] Passage de paramètres depuis Batch vers Excel
    Par Jean-Philippe André dans le forum Excel
    Réponses: 9
    Dernier message: 08/06/2020, 16h55
  2. [AC-2010] Formule matricielle lancée depuis VBA access vers excel
    Par debdev dans le forum VBA Access
    Réponses: 3
    Dernier message: 02/07/2013, 08h49
  3. Passage paramètre depuis VBS vers Hta
    Par papyxy dans le forum VBScript
    Réponses: 2
    Dernier message: 21/02/2013, 18h08
  4. Passage de parametre Access vers Excel
    Par climz dans le forum Access
    Réponses: 2
    Dernier message: 05/05/2006, 15h07

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