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 :

[VBA-E] : Axe des X des Chart / Nuage de point


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Points : 24
    Points
    24
    Par défaut [VBA-E] : Axe des X des Chart / Nuage de point
    Bonjour à tous,

    1) je ne parviens pas à définir l'axe des X des mes graphiques, l'échelle de
    value se fait par défaut et ne correspond pas à ma série (mais plutot à un comptage.Pas de problème en Y, en revanche la série X est renvoyé en Y.

    __________________

    ' Définition des variables objets excel
    Dim appliExcel As Excel.Application 'Application Excel
    Dim wbkExcel As Workbook 'Classuer Excel
    Dim wksExcel As Worksheet 'Feuille Excel

    Dim Plage As Range 'Plage
    Dim Graph As CHART

    'Initialisation des variables - appel du fichier excel
    Set appliExcel = CreateObject("Excel.application")
    appliExcel.Visible = True
    Set wbkExcel = appliExcel.Workbooks.Open("G:\BD_ACCESS\EXPORT\EXPORT.xls")
    wbkExcel.Activate

    'Défini les propriétés du nouveau graphique
    Set wksExcel = wbkExcel.Worksheets("EXPORT")
    wksExcel.Activate
    Set Plage = wksExcel.Range("A1").CurrentRegion ' Défini la source du graphique
    Set Graph = wbkExcel.Charts.Add


    Graph.SetSourceData Plage, xlColumns 'Attribue la source au graphique, et le type de série
    Graph.SeriesCollection(1).XValues = Plage(1)' LE PROBLEME DOIT ETRE ICI
    Graph.ChartArea.Interior.Color = vbWhite 'couleur de fond du graphique
    'Graph.HasAxis = True 'Axes visible
    Graph.HasDataTable = True 'Table des données visibles
    Graph.HasTitle = True 'Titre visible
    'Graph.Legend = True 'Légende visible
    Graph.ChartTitle.Characters.Text = " Mon joli Graphique" 'Titre du graphique

    'Défini selon le Type de graphique choisi :

    Select Case Me.Liste152.Value


    Case "Nuages de points"
    Graph.ChartType = xlXYScatterLines
    Graph.Axes(xlValue, xlPrimary).HasTitle = True 'Axe des ordonnées visible
    Graph.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "ESSAI" ' Titre en Y
    Graph.Axes(xlCategory, xlPrimary).HasTitle = True 'Axe des abscisses visible
    Graph.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "ESSAI" ' Titre en X
    Graph.Axes(xlValue, xlPrimary).HasMajorGridlines = True 'grille en Y visible
    'Graph.Axes(xlValue, xlPrimary).HasMajorGridlines.Border.Color = vbRed

    'Définition de la grille
    'Graph.Axes(xlValue, xlPrimary).MajorGridlines.Border.Weight = xlHairline
    'Graph.Axes(xlValue, xlPrimary).MajorGridlines.Border.LineStyle = xlContinuous

    'Définition de la zone de traçage du graphique
    Graph.PlotArea.Border.Color = vbGrey
    Graph.PlotArea.Border.Weight = xlThin
    Graph.PlotArea.Border.LineStyle = xlContinuous
    Graph.PlotArea.Interior.Color = vbWhite
    Graph.PlotArea.Interior.PatternColor = vbGreen
    Graph.PlotArea.Interior.Pattern = xlSolid

    'Définition des collection
    Graph.SeriesCollection(1).Border.Color = vbBlue
    Graph.SeriesCollection(1).Border.Weight = xlMedium
    Graph.SeriesCollection(1).Border.LineStyle = xlContinuous

    .....

    MERCI.

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 949
    Points : 4 876
    Points
    4 876
    Par défaut
    Apparement, pour l'échelle des X (et celle des Y) ça marche bien chez moi avec le code suivant :
    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
     
    Dim AxeDesX As Object
    Dim AxeDesY As Object
    Dim GraphObj As Object
     
        Set GraphObj = Me![xChart2]
     
        'On Error GoTo Erreurs
     
        Set AxeDesX = GraphObj.Object.Application.Chart.Axes(1)
        Set AxeDesY = GraphObj.Object.Application.Chart.Axes(2)
     
        AxeDesY.MinimumScale = 1
        AxeDesY.MinimumScaleIsAuto = False
        AxeDesY.MaximumScale = 100
        AxeDesY.MaximumScaleIsAuto = False
        AxeDesY.MajorUnit = 10
        AxeDesY.MajorUnitIsAuto = False
        AxeDesY.MinorUnit = 10
        AxeDesY.MinorUnitIsAuto = False
        AxeDesY.ScaleType = -4133     'Echelle logaritmique
     
        AxeDesX.MinimumScale = 10
        AxeDesX.MinimumScaleIsAuto = False
        AxeDesX.MaximumScale = 10000
        AxeDesX.MaximumScaleIsAuto = False
        AxeDesX.MajorUnit = 10
        AxeDesX.MajorUnitIsAuto = False
        AxeDesX.MinorUnit = 10
        AxeDesX.MinorUnitIsAuto = False
        AxeDesX.ScaleType = -4133   
     
        Set AxeDesX = Nothing
        Set AxeDesY = Nothing
        Set GraphObj = Nothing
    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Points : 24
    Points
    24
    Par défaut récupérer les valeurs des abscisses en X
    Ton graph tu le déclares en Objet, mais moi en Chart.
    ça change tout, non ?

    Mon graph n'est pas intégré dans un formulaire ACCESS, mais renvoie des donnéées d'ACCESS sous forme de graph dans un nouvel onglet EXCEL.

    Ton code, ne peut pas fonctionner dans mon cas...

    Je voudrais surtout :
    - récupérer les valeurs des abscisses en X
    - les afficher
    - gérer l'échelle des axes en focntion des données.

    Qui peut m'aider ? Merci.
    Tu as une idée ?

    R1

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 150
    Points
    20 150
    Par défaut
    bonjour

    tu peux faire un essai en spécifiant des plages différentes pour les abscisses et les ordonnées


    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
    Sub Test()
    ' Définition des variables objets excel
    Dim appliExcel As Excel.Application 'Application Excel
    Dim wbkExcel As Workbook 'Classuer Excel
    Dim wksExcel As Worksheet 'Feuille Excel
     
    Dim PlageX As Range, PlageY As Range
    Dim Graph As Chart
     
    'Initialisation des variables - appel du fichier excel
    Set appliExcel = CreateObject("Excel.application")
    appliExcel.Visible = True
    Set wbkExcel = appliExcel.Workbooks.Open("C:\leClasseur.xls")
    wbkExcel.Activate
     
    'Définit les propriétés du nouveau graphique
    Set wksExcel = wbkExcel.Worksheets("EXPORT")
    wksExcel.Activate
     
    '*********************************************************************
    'Definit les abscisses (colonne A)
    Set PlageX = _
        wksExcel.Range("A1:A" & wksExcel.Range("A1").End(xlDown).Row)
     
    'Definit les ordonnées (colonne B à ...)
    Set PlageY = _
        wksExcel.Range(wksExcel.Cells(1, 2), _
            wksExcel.Cells(wksExcel.Range("B1").End(xlDown).Row, _
                                wksExcel.Range("B1").End(xlToRight).Column))
     
    '*********************************************************************
     
    Set Graph = wbkExcel.Charts.Add
     
    With Graph
        '************************************************
        .SetSourceData PlageY, xlColumns
        .SeriesCollection(1).XValues = PlageX 'Abscisses
        '************************************************
     
        .ChartArea.Interior.Color = vbWhite
        .HasDataTable = True 'Table des données visibles
        .HasTitle = True 'Titre visible
        .ChartTitle.Characters.Text = " Mon joli Graphique"
    End With
     
    End Sub


    bonne soiree
    michel

Discussions similaires

  1. [Débutant] Insérer des noms dans un nuage de points.
    Par darkalex54 dans le forum MATLAB
    Réponses: 4
    Dernier message: 21/04/2010, 11h07
  2. Détection des phases dans un nuage de point
    Par Victhestatic dans le forum Signal
    Réponses: 2
    Dernier message: 19/01/2010, 12h33
  3. Réponses: 19
    Dernier message: 20/12/2006, 11h15
  4. [MySQL] Utilisation des fonctions des récupérations des données
    Par Konrad Florczak dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/10/2006, 16h17
  5. Gestion des majuscules des miniscules des accent
    Par issam16 dans le forum Access
    Réponses: 2
    Dernier message: 13/07/2006, 15h21

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