Erreur 438 dans cette procédure

Anonyme
2023-06-24T15:12:45+00:00

J'utilise Access 2021 Pro+ pour créer une application de bureau. Le graphique a été inséré dans un formulaire avec la commande "Insérer un graphique moderne" de la barre d'outils "Conception de formulaire". J'ai l'erreur 438 sur toutes les lignes cht.ChartAxis...

Est-ce que j'ai omis une déclaration ?

Sub AjusterGraphique()
Dim cht As Object

Set cht = Me.gGraphique  
  
' \*\*\* Ajouter les données au graphique  
cht.RowSourceType = "Table/Query"  
cht.RowSource = "rq\_Graphique"  
  
' \*\*\* Configurer les axes du graphique  
' \*\*\* la référence à MsExcel est activée  
' \*\*\* X (vertical)  
cht.ChartAxis(xlValue).AcChartType = 3  
cht.ChartAxis(xlValue).CategoryType = xlCategoryScale  
cht.ChartAxis(xlValue).HasTitle = True  
cht.ChartAxis(xlValue).AxisTitle.Caption = "[%]"  
cht.ChartAxis(xlValue).PrimaryValuesAxisFormat = "###,#0"  
cht.ChartAxis(xlValue).MaximumScale = 100  
  
' \*\*\* Y (Horizontal)  
cht.ChartAxis(xlCategory).CategoryType = xlCategoryScale  
cht.ChartAxis(xlCategory).HasTitle = True  
cht.ChartAxis(xlCategory).AxisTitle.Caption = "Produit - Marque"  

End Sub

Un grand merci pour votre aide.

Microsoft 365 et Office | Access | Other | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

7 réponses

  1. Hecatonchire 53,950 Points de réputation Modérateur bénévole
    2023-06-25T12:02:44+00:00

    Non il n'y a pas de mal, c'est simplement que j'aurais pu passer à coté de cette information et ainsi perdre et te faire perdre beaucoup de temps inutilement.

    Chaque objet à ses propres propriétés et méthodes donc un graphique ancienne version n'a pas les même qu'un graphique moderne.

    Vu que ton code est fait pour un graphique moderne (je ne l'ai pas testé) pourquoi ne pas tenter de :

    > supprimer le graphique ancienne version

    > créer un graphique nouvelle version en lui donnant le nom gGraphique (fenêtre Propriétés>onglet Autre)

    ![](https://learn-attachment.microsoft.com/api/attachments/f723ed54-c998-4946-8d15-9af163c4efcb?platform=QnA

    > modifier le début du code

    Sub AjusterGraphique()
    Dim chtObj As ChartSet chtObj = Me.gGraphique

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2023-06-25T11:22:15+00:00

    Désolé, j'ai cru bien faire !

    Ce contrôle est pour le moment, le seul qui réponde à peu près à ce que je voulais, c'est à dire que l'axe vertical soit affiché en tant que %. Je ne parvenais pas à créer le graphique que je désirais. Cette nouvelle version du code n'est donc pas utilisée. Access a encore des progrès à faire.

    Ça fait plus d'une semaine que je plante sur la possibilité d'insérer un graphique par code VBA. Je ne compte plus les sites sur lesquels j'ai cherché, et c'est encore plus difficile quand on ne lit pas l'anglais.

    Pour info, j'ai appris la programmation au volant de mon camion quand je roulais partout en Europe. Je n'ai jamais été dans une école spécifique. J'ai 78 ans, en retraite depuis 2005 et je m'en tire assez bien je crois.

    Désolé encore, pardon si je t'ai dérangé.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Hecatonchire 53,950 Points de réputation Modérateur bénévole
    2023-06-25T09:56:07+00:00

    Bonjour,

    C'est normal que le volet espion soit vide, c'est à toi de placer l'objet ou l'expression que tu veux.

    Pourquoi effacer/modifier ta réponse ? Ces précisions pourraient intéresser moi et d'autre lecteurs du fil de savoir que grâce à l'information des volets cela permet de se rendre compte que gGraphique était un Objectframe et non un Chart et de donner ainsi la solution à ton problème.

    Ton graphique est un graphique ancienne version (1) et non comme tu l'as indiqué dans ton premier message un graphique moderne (2).

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2023-06-25T04:55:27+00:00

    Bonjour, et bonne fin de semaine !

    il y avait apparemment une mauvaise déclaration de l'objet Me.gGraphique
    Voici la nouvelle procédure qui génère un autre type d'erreur : "Erreur automation - Objet non connecté au serveur"

    Pourtant j'ai bien toutes les références nécessaire !

    Comment résoudre ce souci ?
    Merci de ton aide

    Sub AjusterGraphique()
    Dim chtObj As Object Set chtObj = Me.gGraphique.Object

    ' \*\*\* Ajouter les données au graphique  
    'chtObj.RowSourceType = "Table/Query"  
    chtObj.RowSource = "rq\_Graphique"  
      
    ' \*\*\* Configurer les axes du graphique  
    ' \*\*\* la référence à MsExcel est activée  
    ' \*\*\* X (vertical)  
    chtObj.ChartType.AcChartType = 3  
    chtObj.ChartAxis(xlValue).CategoryType = xlCategoryScale  
    chtObj.ChartAxis(xlValue).HasTitle = True  
    chtObj.ChartAxis(xlValue).AxisTitle.Caption = "[%]"  
    chtObj.ChartAxis(xlValue).PrimaryValuesAxisFormat = "###,#0"  
    chtObj.ChartAxis(xlValue).MaximumScale = 100  
      
    ' \*\*\* Y (Horizontal)  
    chtObj.ChartAxis(xlCategory).CategoryType = xlCategoryScale  
    chtObj.ChartAxis(xlCategory).HasTitle = True  
    chtObj.ChartAxis(xlCategory).AxisTitle.Caption = "Produit - Marque"  
      
    

    End Sub

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Hecatonchire 53,950 Points de réputation Modérateur bénévole
    2023-06-24T18:42:50+00:00

    Bonjour,

    Es-tu sur que gGraphique est bien le graphique ?

    Place un point d'arrêt après le Set et va voir le type de donnée de cht dans le volet Variables locales ou Espion.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire