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 :

Changement plage de cellules dans macros existantes


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 111
    Par défaut Changement plage de cellules dans macros existantes
    Bonjour,

    Je voulais adapter le graphique sur mes résultats de la cellule H1 à S9 et l’imprimer mais je n’arrive pas à adapter les cellules de référence dans les macros.

    Est-ce que quelqu’un voudrait bien les corriger pour moi. Merci beaucoup d’avance.

    H1 : S1 : 12 mois (1,2,3,4…)
    G2 : G9 : Références des services concernés
    H2 : S9 : Résultats à mettre en graphique imprimable

    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
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    Option Explicit
    Option Base 1
     
        'Nota:
        'Utilisez l'objet WCChart pour la bibliothèque OWC9.
        'Dim Cht As WCChart
     
    'Bibliothèques OWC10 et OWC11
    Dim Cht As ChChart
    Dim C
     
    Private Sub CommandButton3_Click()
     
    End Sub
     
    Private Sub UserForm_Initialize()
        Dim x As Byte
     
        'Centre le graphique dans l'écran
        Me.StartUpPosition = 2     ' en haut à gauche = 3
        Set C = ChartSpace1.Constants
        'Ajoute le graphique
        Set Cht = ChartSpace1.Charts.Add
     
        'Alimentation Listbox (Données de la plage G2:G9)
        For x = 2 To 10
            ListBox1.AddItem Cells(x, 7)
        Next x
    End Sub
    Private Sub CommandButton1_Click()
    Dim i As Integer, x As Integer
    Dim j As Integer
    Dim Tableau(7), Plage(7)
     
    'suppression des séries existantes dans le ChartSpace
    For i = Cht.SeriesCollection.Count To 1 Step -1
        Cht.SeriesCollection.Delete i - 1
    Next i
     
    'Définit les abscisses(plage de cellules H1:S1)
    For i = 1 To 7
        Tableau(i) = Cells(1, 7 + i)
    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 = "SORTIES DU STOCK"
    End With
     
     
    'Définit le type de graphique
    If ToggleButton1.Caption = "Graphique en Barre" Then
        'histogramme en barre
        Cht.Type = C.chChartTypeBarClustered3D
        Else
        'histogramme en colonne
        Cht.Type = C.chChartTypeColumnClustered3D
    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
     
            '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 7
                Plage(i) = Cells(j + 2, 7 + i)
            Next i
     
            With Cht
                'Ajoute le tableau d'abscisses
                .SetData C.chDimCategories, C.chDataLiteral, Tableau
                'Ajoute la légenge pour chaque serie
                .SeriesCollection(x).Caption = Cells(j + 2, 7)
                'Affiche valeur de chaque point
                .SeriesCollection(x).DataLabelsCollection.Add
                'Définit la position des valeurs affichées (au dessus par défaut)
                    'Dans la barre pour cet exemple
                .SeriesCollection(x).DataLabelsCollection(0).Position = chLabelPositionCenter
                'Les valeurs de l'histogramme seront affichées en couleur blanche.
                .SeriesCollection(x).DataLabelsCollection(0).Font.Color = RGB(255, 255, 255)
                'Ajoute le tableau d'ordonnées ( Plage() )
                .SeriesCollection(x).SetData C.chDimValues, C.chDataLiteral, Plage
                'Définit la couleur de la série
                .SeriesCollection(x).Interior.Color = 50000 * (j + 1)
            End With
     
            x = x + 1
            'Efface le contenu du tableau
            Erase Plage
        End If
    Next j
     
    End Sub
    'Ajoute une courbe de tendance pour la première série
    Private Sub CommandButton2_Click()
     
        'Ajoute la courbe de tendance
        Cht.SeriesCollection(0).Trendlines.Add
        'Définit la couleur de la courbe de tendance
        Cht.SeriesCollection(0).Trendlines(0).Line.Color = RGB(255, 0, 0)
     
        'Désactive le bouton
        CommandButton2.Enabled = False
    End Sub
    'Rotation graphique
    Private Sub ScrollBar1_Change()
        Cht.Rotation = ScrollBar1
    End Sub
    'Paramètres de luminosité
    Private Sub ScrollBar2_Change()
        Cht.DirectionalLightIntensity = ScrollBar2 / 10
        Cht.DirectionalLightRotation = ScrollBar2 * 5
        Cht.DirectionalLightIntensity = ScrollBar2 / 10
    End Sub
    'Définit le type de graphique
    Private Sub ToggleButton1_Click()
        If ToggleButton1.Caption = "Graphique en Barre" Then
            ToggleButton1.Caption = "Graphique en colonne"
            Else
            ToggleButton1.Caption = "Graphique en Barre"
        End If
    End Sub

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 111
    Par défaut [EXEL 03] Méthode d'adressage cellules inconpréhensible pour moi
    Bonjour,

    Même si je change les références d'adressage des cellules (mettre 12 au lieu de 7) je n'arrive pas à faire que mon graphique puisse prendre en compte les abscisses de H1 à S1 soit l'année entière. L'adaptation m'est compliquée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CommandButton1_Click()
    Dim i As Integer, x As Integer
    Dim j As Integer
    Dim Tableau(7), Plage(7)
     
    'suppression des séries existantes dans le ChartSpace
    For i = Cht.SeriesCollection.Count To 1 Step -1
        Cht.SeriesCollection.Delete i - 1
    Next i
     
    'Définit les abscisses(plage de cellules H1:S1)
    For i = 1 To 7
        Tableau(i) = Cells(1, 7 + i)
    Next i

    De plus, je ne saurais noter ce qu'il faut pour imprimer le graphique avec l'imprimante par défault

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandButton3_Click()
    'pour imprimer le graphique avec l'imprimante par défault
     
    End Sub
    Merci d'avance de m'aider à avancer dans mon projet.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 111
    Par défaut
    Bonsoir,

    Pour l'impression de l'USF j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton3_Click()
    Me.PrintForm
    End Sub
    mais j'ai juste l'USF sans le graphique affiché.

    Qu'est-ce que je dois noter à la place de Me.PrintForm pour que seul le graphique s'imprime?

    Je cherche et ne comprends toujours pas comment avoir douze mois au lieu de 7. Personne peut me dire SVP, merci.

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

Discussions similaires

  1. Autoriser sélection d'une plage de cellule dans une feuille Excel
    Par philoflore dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/08/2008, 10h49
  2. Trouver une plage de cellule dans une autre plage
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 16/04/2008, 15h27
  3. Copier une plage de cellules dans un fichier fermé
    Par COCONUT2 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/07/2007, 18h23
  4. [VBA] Copier une plage de cellules dans un fichier fermé
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/01/2006, 17h52

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