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 :

Lancer procédure d'un fichier Excel depuis Access [AC-97]


Sujet :

VBA Access

  1. #1
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Par défaut Lancer procédure d'un fichier Excel depuis Access
    Bonjour,
    Je dispose d'un classeur Excel 2003 généré par notre ERP. Dans ce classeur, il y a pas mal de procédures en VBA qui sont sur l'unique feuille appelée Sheet1. Et notamment il y a ce code qui permet d'avoir un menu spécifique permettant d'uploader les données dans notre BDD Oracle :
    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
    28
    29
    30
    31
    32
    Public Sub BneCreateOracleMenu()
    ...
    With MenuBars(xlWorksheet).Menus("Or&acle")
            ...
            .MenuItems.add "Char&ger", OnAction:=Application.ActiveSheet.CodeName & ".BneUploadDocument"
            ...
    End With
    ...
    end sub
     
     
    Private Sub BneUploadDocument()
       Dim oParams As New BneVBAParameters
       Set oParams = BneGetUploadParams()
        Dim strMsgHeader As String
        Dim strMsgBody As String
        Dim strMsgAction1 As String
        Dim strMsgAction2 As String
    strMsgHeader = "Erreur"
    strMsgBody = "Les résultats de chargement ne peuvent pas être affichés."
    strMsgAction1 = "Ceci est dû à une défaillance de réseau. Laissez cette fenêtre ouverte pour qu'il y ait plus de tentatives d'affichage de résultats de chargement."
    strMsgAction2 = "Contactez votre administrateur système si le problème persiste."
        Set m_Browser = New BneBrowser
        BneDefaultBrowser m_Browser
        Call m_Browser.ErrorMessage(strMsgHeader, strMsgBody, strMsgAction1, strMsgAction2)
       m_Browser.addEventCallBack "BneUploadBegin", "ASYNCUPLOADBEGIN", Me
       m_Browser.addEventCallBack "BneUploadComplete", "ASYNCUPLOADCOMPLETE", Me
       m_Browser.addEventCallBack "BneUploadError", "ERROR", Me
       m_Browser.addEventCallBack "BneUploadClose", "CLOSE", Me
       m_Browser.NavigatePost APPLICATION_SERVICE, oParams
       m_Browser.Show
    End Sub
    Je fais de l'automation depuis ACCESS 97 (grrrrr) et je souhaite juste savoir comment je peux appeler la procédure BneUploadDocument depuis ACCESS.
    J'ai essayé, entre autres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Visible = True
    Set xlBook = xlApp.Workbooks.Open(strPath)
    Set xlSheet = xlBook.Sheets("Sheet1")
     
    xlApp.Application.ActiveSheet.CodeName.BneUploadDocument
    Mais ça ne marche pas (Objet requis).

    Merci d'avance aux développeurs chevronnés que vous êtes de bien vouloir m'aider

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Par défaut
    J'ai testé beaucoup de choses et cherché longtemps et je commence à me dire que ce n'est pas possible Pouvez-vous me confirmer ? Sinon est-il possible d'appeler une méthode du genre DoMenuItem ? ou avec les CommandBars ? j'ai cherché aussi dans ce sens mais tjrs pas de résultat

  3. #3
    Membre émérite
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Par défaut
    Bonjour paidge
    Pour appeler une une procédure d'un fichier Excel ,je fais
    appExcel.Run "copier" 'active la macro "copier"A+

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Par défaut
    Bonsoir Thierry et merci de bien vouloir m'aider
    Le problème c'est qu'il ne s'agit pas d'une macro...Il s'agit d'une private Sub de la feuille "sheet1". J'ai du essayer cette méthode mais je ne suis plus très sûr (j'ai testé tellement de méthodes ^^)

    Je retourne à ma boîte dans 2 semaines et en attendant si d'autres ont des idées, je suis preneur

  5. #5
    Membre émérite
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Par défaut
    Bonjour paidge.
    Petite erreur dans le commentaire .Il s'agit bien d'une procédure .De toute façon ,je cois que ça marche aussi pour une macro.
    Si 2 procédures portent le mm nom, tu ecrit "NomModule.NomSub" .
    A dans 2 semaines alors!

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Par défaut
    Bonjour à tous.
    Je reviens sur mon problème. J'ai donc testé les solutions suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ' 1er test
    xlApp.Run Feuil1.BneUploadDocument
    '2e test
    xlApp.Run Sheet1.BneUploadDocument
    '3e test
    xlSheet.BneUploadDocument
    '4e test
    xlApp.Run xlSheet.BneUploadDocument
    Mais toujours aucun résultat positif...
    Je pense que le fait que la procédure BneUploadDocument du classeur Excel soit en private est un problème. Et malheureusement je ne peux pas la passer en public.

    D'autres idées ?

  7. #7
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Par défaut
    ça y est !!!! J'ai enfin trouvé la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlApp.CommandBars(125).Controls(2).Execute
    Il fallait juste trouver l'indice de ce fichu menu "Oracle" ...et connaître la méthode execute de l'objet (c'est un objet control ou controlCommandBar ou un truk du genre...si qqun sait ça m'intéresse, l'aide VBA déconne ici)

    Merci de ton aide Thierry

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

Discussions similaires

  1. lancer macro d'un fichier excel depuis Access
    Par nicoosito dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/09/2010, 09h52
  2. [VBA] Mise en forme d'un fichier Excel depuis Access
    Par morgiane dans le forum Access
    Réponses: 2
    Dernier message: 25/07/2007, 10h32
  3. [VBA Excel Débutant] Tri d'un fichier Excel depuis Access
    Par elgringo2007 dans le forum Access
    Réponses: 3
    Dernier message: 07/08/2006, 16h21
  4. comment fermer un fichier Excel depuis Access?
    Par audrey_desgres dans le forum Access
    Réponses: 14
    Dernier message: 21/06/2005, 12h43
  5. Ouvrir un fichier excel depuis access
    Par ptitegrenouille dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 03/05/2005, 11h47

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