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 :

Automation export vers Excel bug 1 fois sur 2


Sujet :

Access

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 193
    Points : 171
    Points
    171
    Par défaut Automation export vers Excel bug 1 fois sur 2
    Bonjour !

    A partir d'Access, j'ouvre un classeur excel dans lequel j'affiche un tableau , puis un graphique sur une deuxième feuille.

    Malheureusement, mon code fonctionne très bien la première fois que je l'éxecute, mais plante la deuxième fois:
    Excel s'ouvre, fait le tableau,mais refuse de créer le graphique.

    J'ai le message d'erreur :
    Erreur d'execution '-2147417851 (80010105)
    La méthode 'SetSourceData' de l'objet' _Chart' a échoué.

    Voici mon code :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    Set Db = CurrentDb
     
    'automation pour piloter excel
    Dim xlApp As Excel.Application
        Dim xlSheet As Excel.Worksheet
        Dim xlBook As Excel.Workbook
     
      'Initialisations
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Add
        xlApp.Visible = True
     
        'Ajouter une feuille
        Set xlSheet = xlBook.Worksheets.Add
        xlSheet.Name = "Fonction"
        Set xlSheet = xlBook.ActiveSheet
     
     
     'Créer un nouveau classeur
    '   Set wbk = .Workbooks.Add
     
    '**************************************************************************************************************************
    'tableau1 : quelle est la fonction des personnes formées 
    '**************************************************************************************************************************
     
     
    'compter le nombre de personnes formées par fonction
    Dim Rq_Tab As String
    Rq_Tab = " SELECT count(T_Contact.Num_Contact) AS NbPersForm, T_Contact.Fonction_Contact FROM T_Contact"
    Rq_Tab = Rq_Tab & " WHERE (T_Contact.Date1Formation_Contact Is Not Null Or T_Contact.Date2Formation_Contact Is Not Null)"
    Rq_Tab = Rq_Tab & " GROUP BY T_Contact.Fonction_Contact ORDER BY T_Contact.Fonction_Contact DESC;"
     
    Dim Rst_Tab As Recordset
    Set Rst_Tab = Db.OpenRecordset(Rq_Tab)
     
     
    i = 5
    While Not Rst_Tab.EOF
     
    xlSheet.Cells(i, 2) = Rst_Tab![Fonction_Contact]
    xlSheet.Cells(i, 3) = Rst_Tab![NbPersForm]
     
    i = i + 1
    Rst_Tab.MoveNext
    Wend
     
    xlSheet.Cells(i - 1, 2) = "Non renseigné"
     
    Rst_Tab.Close
     
    xlSheet.Columns(2).AutoFit
    xlSheet.Columns(3).AutoFit
     
    o = "B5:C" & i - 1
     
    '******************************************************************************************************************************
    'graphique tableau 1
    '******************************************************************************************************************************
     
    Dim objChart As Chart, objRange As Range
    Set objRange = Worksheets("Fonction").Range("(" & o & ")")
     
        Set objChart = xlBook.Charts.Add
        objChart.Name = "Graph-Fonction"
        objChart.ChartType = xlColumnClustered
     
     
        objChart.SetSourceData objRange, xlColumns
     
        With ActiveChart
            .HasTitle = True
            .ChartTitle.Characters.Text = "Quelle est la fonction des personnes formées par PBE+ ?"
            .Axes(xlCategory, xlPrimary).HasTitle = True
            .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Fonction"
            .Axes(xlValue, xlPrimary).HasTitle = True
            .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Nombre de personnes"
     
        End With
     
    objChart.SeriesCollection(1).Name = "Nombre de personnes formées"
        objChart.SeriesCollection(1).ApplyDataLabels xlDataLabelsShowValue, False
    Quelqu'un a t'il deja rencontré ce problème ?
    Merci d'avance pour vos conseils.

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Met un point d'arrêt ici:
    et regarde la valeur de I et son contenu.
    Est-ce qu'à cet instant, sans parler de VBA, es-tu capable de générer un graphique avec la source spécifiée ?

    Argy

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 193
    Points : 171
    Points
    171
    Par défaut
    Bonjour,

    la variable o contient bien une source correcte.

    Mon code fonctionne très bien la première fois que je le lance.
    Pour qu'il fonctionne une deuxième fois, je suis obliger d'arreter l'execution et de le relancer.
    C'est drolement embetant !

    Merci!

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Celia1303
    la variable o contient bien une source correcte.
    1/ Oui, je me doute, ma question était plus précise :
    Est-ce que la plage de données définie par la variable o contient bien les données prévues pour le graphique (Même nombre de lignes et colonnes par exemple)...?

    Donc appuies sur Stop au moment de générer le graphique et jette un oeil sur la feuille de calcul en B5:C?

    2/ Ferme tu bien le classeur avant de recommencer ?

    Argy

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 193
    Points : 171
    Points
    171
    Par défaut
    1/ Oui, je me doute, ma question était plus précise :
    Est-ce que la plage de données définie par la variable o contient bien les données prévues pour le graphique (Même nombre de lignes et colonnes par exemple)...?
    J'avais bien compris, y'a aucun soucis de ce coté la.

    Pour la fermeture du classeur, oui également (j'ai meme vérifié dans le gestionnaire des taches).

    Dans mon formulaire, j'ai plusieurs boutons qui permettent de générer chacun un fichier excel contenant tableaux et graphiques.

    Je lance mon appli, j'en choisi un au hasard, ca fonctionne.
    Je ferme le classeur, je choisi encore un bouton (le meme ou un autre), ca ne fonctionne plus, et j'ai toujours la meme erreur.

    Peut etre une autre idée ?
    Merci !

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    slt,
    essaye de préfixer tous tes appels aux méthodes et propriétés excel

    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objRange = Worksheets("Fonction").Range("(" & o & ")")
    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objRange = xlApp.Worksheets("Fonction").Range("(" & o & ")")

  7. #7
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 193
    Points : 171
    Points
    171
    Par défaut
    Oh !

    A prioris, ca a l'air beaucoup mieux !

    Merci beaucoup !

    Je vais continuer à faire cette modif sur l'ensemble de mes graphiques.
    Je reviens si y'a un soucis.

    Merci mille fois !

  8. #8
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 193
    Points : 171
    Points
    171
    Par défaut
    Merci encore.

    C'était juste ca, mais je n'y aurais jamais pensé.

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

Discussions similaires

  1. [Automation]export vers excel avec arborescence
    Par djo.alpha dans le forum Access
    Réponses: 5
    Dernier message: 20/04/2007, 09h55
  2. [Automation]Exporter vers Excel dans differents onglets
    Par Didier71 dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/04/2007, 07h24
  3. [Automation]Exporter vers Excel
    Par jojoboloss dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/04/2007, 10h22
  4. [Automation] Erreur lors de l'export vers Excel
    Par steps5ive dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/04/2007, 16h14
  5. Access export vers Excel sur plusieurs feuilles
    Par oceanediana dans le forum Access
    Réponses: 6
    Dernier message: 10/07/2006, 12h15

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