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

Macros et VBA Excel Discussion :

Problématique sur Code VBA graphique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 46
    Par défaut Problématique sur Code VBA graphique
    Bonjour,

    J'ai adapté une macro , dont voici le résultat, elle fonctionne parfaitement
    jusqu'a l'ajout d'une courbe ou colonne supplémentaire .

    Lors de la boulce en j ( next listbox, et effacement des données ci-dessous)
    J'ai un message d'erreur m'indiquant : erreur d'exécution 9
    l'indice n''appartient pas à la selection

    A ce niveau, il m'efface la plage et non exclusivement les données

    Erase Plage

    Bien Cordialement

    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
    83
    84
    85
    86
    87
    88
    89
    90
    Dim i As Integer, x As Integer
    Dim j As Integer, l As Integer, b As Integer
    Dim Tableau(), Plage()
    
    l = Worksheets("graphique").Range("B2").End(xlDown).Row
    x = 10
    
    'suppression des séries existantes dans le ChartSpace
    For i = Cht.SeriesCollection.Count To 1 Step -1
            Cht.SeriesCollection.Delete i - 1
    Next i
    
    With graphique
    
    ReDim Tableau(l)
    ReDim Plage(l)
    
    
    'Définit les abscisses(plage de cellules H1:N1)
    For i = 1 To l
        Tableau(i) = .Cells(2 + i, 9)
    Next i
    
    With Cht
        'Permet l'affichage des légendes
        .HasLegend = True
        'Affiche les légendes sous le graphique
        .Legend.Position = chLegendPositionBottom
        'Attribue un titre
        .HasTitle = True
        .Title.Caption = graphique.Range("A1") & " - " & graphique.Range("D1")
        
    End With
    'Définit le type de graphique
    If ToggleButton1.Caption = "Graphique en Colonne" Then
     'histogramme en colonne
        Cht.Type = C.chChartTypeColumnClustered3D
        Else
        'histogramme en courbe
        Cht.Type = chChartTypeLine
          
    End If
    
    
    'Boucle sur les éléments de la listbox
    For j = 0 To ListBox1.ListCount - 1
    
        'Identifie les items sélectionnés
        If ListBox1.Selected(j) = True Then 'And j <= 0 Then
            
        'Création de la 1ere série
       'If Cht.SeriesCollection.Count > 0 Then
        Cht.SeriesCollection.Add
       
        'Récupération des ordonnées pour chaque série
            For i = 1 To l
                Plage(i) = .Cells(2 + i, 10 + j)
                'Plage(i) = .Cells(2 + i, 10)
            Next i
            
            
                    
            With Cht
                'Ajoute le tableau d'abscisses
                .SetData C.chDimCategories, C.chDataLiteral, Tableau
                'Ajoute la légenge pour chaque serie
                .SeriesCollection(b).Caption = graphique.Cells(2, x + j)
                'Affiche valeur de chaque point
                .SeriesCollection(b).DataLabelsCollection.Add
                'Définit la position des valeurs affichées (au dessus par défaut)
                'Dans la barre pour cet exemple
                .SeriesCollection(b).DataLabelsCollection(0).Position = chLabelPositionCenter
                'Les valeurs de l'histogramme seront affichées en couleur blanche.
                '.SeriesCollection(x).DataLabelsCollection(0).Font.Color = RGB(0, 102, 0) 'RGB(0, 102, 0)
                .SeriesCollection(b).DataLabelsCollection(0).NumberFormat = "#,##0.00"
                'Ajoute le tableau d'ordonnées ( Plage() )
                .SeriesCollection(b).SetData C.chDimValues, C.chDataLiteral, Plage
                'Définit la couleur de la série
                .SeriesCollection(b).Interior.Color = 60000 * (j + 5)
              
            End With
            
            
            b = b + 1
            'Efface le contenu du tableau
            Erase Plage
            End If
    Next j
    
    End With

  2. #2
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 46
    Par défaut
    eh bien

    il suffisait de supprimer la ligne ( il ne s'agissait pas d'une blague !)

    bien Cdt


    Merci à vous

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

Discussions similaires

  1. [AC-2002] Erreur 91 sur code VBA
    Par volganne dans le forum VBA Access
    Réponses: 6
    Dernier message: 02/09/2010, 14h03
  2. [XL-2000] Aide sur Code VBA
    Par Dan21 dans le forum Excel
    Réponses: 3
    Dernier message: 08/02/2010, 14h38
  3. Option sur code vba déjà créé
    Par akmer dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/05/2008, 15h55
  4. [VBA]Conseil sur code VBA
    Par mat67000 dans le forum VBA Access
    Réponses: 15
    Dernier message: 22/03/2007, 11h23
  5. mot de passe sur code VBA
    Par Cupidon dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/02/2007, 15h05

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