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

Access Discussion :

Lancer une macro Excel TCD depuis Access


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2013
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Lancer une macro Excel TCD depuis Access
    Bonjour,

    Je souhaite créer une macro depuis access qui qui me génère un un tableau croisé dynamique depuis un fichier excel.
    J'ai activé les références excel dans VBE access et je tape le code qui suit:

    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
    33
    Sub MonTCD()
    Dim xlApp As Object
        Dim mySheet As Object
     
        Set xlApp = CreateObject("Excel.Application")
        Set mySheet = xlApp.Workbooks.Open("C:\Apps\Excel\test.xls") ' Définit le fichier EXCEL à ouvrir
     
        ' Endroit où mettre le code de pilotage
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
            "Feuil1!R1C1:R10C8", Version:=xlPivotTableVersion12).CreatePivotTable _
            TableDestination:="Feuil2!R3C1", TableName:="Tableau croisé dynamique1", _
            DefaultVersion:=xlPivotTableVersion12
        Sheets("Feuil2").Select
        Cells(3, 1).Select
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "Material Desc")
            .Orientation = xlRowField
            .Position = 1
        End With
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "Material Number")
            .Orientation = xlColumnField
            .Position = 1
        End With
     
        ' Code de fermeture
        mySheet.Save
        mySheet.Close
        xlApp.Quit
        Set xlApp = Nothing
        Set mySheet = Nothing
     
    end sub
    Je me suis inspiré pour écrire cela de bout de code un peu partout sur la toile.

    Mais quand je lance ma macro avec access j'ai ce message d'erreur:
    erreur d'exécution 5
    Argument ou appel de procédure incorrect


    Quelqu'un a-t-il la solution?

    Merci d'avance!

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    J'essayerai de prefixer tous les appels à des objets Excel par xlApp.

    ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlApp.ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=
    A+

Discussions similaires

  1. [XL-2007] Lancer une macro Excel 2007 depuis un fichier batch
    Par kedmard dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 30/03/2012, 16h06
  2. [AC-2003] Lancer une macro excel à partir d'access
    Par Williamm dans le forum VBA Access
    Réponses: 56
    Dernier message: 12/08/2011, 11h11
  3. Lancer une Macro Excel à partir d'access
    Par ThieBEN dans le forum VBA Access
    Réponses: 8
    Dernier message: 12/12/2007, 14h21
  4. Lancer une macro Excel depuis Access
    Par pascal913 dans le forum Access
    Réponses: 12
    Dernier message: 31/07/2006, 15h31
  5. Lancer une macro Excel depuis Access
    Par marcobosio dans le forum Access
    Réponses: 6
    Dernier message: 05/06/2006, 20h51

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