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 :

diagramme deux dimensions [x;y]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 120
    Par défaut diagramme deux dimensions [x;y]
    Bonjour tous le monde,

    Je souhaite faire un diagramme deux D à l'aide d'un bouton sur mon userform.
    En abscisse: les valeurs de ma colonne A (type double)
    En ordonnée: les valeurs de ma colonne G (pourcentage)

    J'ai utilisé l'enregistreur de macro, mais ça ne me donne pas ce que je veux. J'obtiens des doubles barres alors que j'aimerais ceci:

    http://www.openingnewcaledonia.ca/icons/diagramme.jpg

    Si quelqu'un aurait un bout de code pouvant m'aider ça serait super.

    Merci par avance

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Citation Envoyé par marie33000 Voir le message

    J'ai utilisé l'enregistreur de macro, mais ça ne me donne pas ce que je veux. J'obtiens des doubles barres alors que j'aimerais ceci:
    a mon avis quand tu as utilisé l'enregistreur tu na tout simplement pas fait le bon graphique

    Si tu as des double barre c'est que tu as deux séries il faut que tu fasses une seule série mais que tu renseigne les étiquette de l'axe des abscisse (ou un truc comme ca)

    Moi j'obtient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Charts.Add
        ActiveChart.ChartType = xlColumnClustered
        ActiveChart.SetSourceData Source:=Sheets("Feuil2").Range("A1"), PlotBy _
            :=xlColumns
        ActiveChart.SeriesCollection(1).XValues = "=Feuil2!R34C2:R41C2"
        ActiveChart.SeriesCollection(1).Values = "=Feuil2!R34C3:R41C3"
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil2"
        With ActiveChart
            .HasTitle = False
            .Axes(xlCategory, xlPrimary).HasTitle = False
            .Axes(xlValue, xlPrimary).HasTitle = False
        End With
    après a toi de rensuigner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ActiveChart.SeriesCollection(1).XValues = "=Feuil2!R34C2:R41C2"
    R corespond au numéro de ligne C a celui de colonne
    mes plages sont de la ligne 34 colonne 2 a ligne 41 colonne 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        ActiveChart.SeriesCollection(1).Values = "=Feuil2!R34C3:R41C3"

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Salut,

    En effet, tu t'es bien trompé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
    15
    16
    17
     
    Charts.Add
        ActiveChart.ChartType = xlColumnClustered
        ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("B1:B5"), PlotBy:= _
            xlColumns
        ActiveChart.SeriesCollection(1).XValues = "=Feuil1!R1C1:R5C1"
        ActiveChart.SeriesCollection(1).Name = "=""Test"""
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
        With ActiveChart
            .HasTitle = True
            .ChartTitle.Characters.Text = "Test"
            .Axes(xlCategory, xlPrimary).HasTitle = True
            .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Colonne A"
            .Axes(xlValue, xlPrimary).HasTitle = True
            .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Colonne B"
        End With
        ActiveChart.HasDataTable = False
    Ca marche au poil comme ça. Ta colonne G est ma colonne B.

    Pour info, dans l'onglet "Plage de données", tu ne dois mettre que ta colonne G. Après, tu dois switcher sur l'onglet "Série". Dans le champ "Etiquette de l'axe des abscisses", tu dois mettre ta colonne A.

    Bref, retour à l'enregistreur

  4. #4
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 120
    Par défaut
    Merci pour vos réponses, ça fonctionne
    Par contre serait il possible d'intégrer à ce diagramme plusieurs séries et de les différencier grâce à une couleur différente ?
    Je dispose de plusieurs checkbox:
    -a
    -b
    -c
    -d
    -e

    En sélectionnant le a j'aimerais qu'il ne m'affiche que le spectre provenant des données de "a" etc etc
    Si je coche a et b alors j'aimerais qu'ils me mettent les deux.
    Merci beaucoup

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/11/2005, 19h55
  2. Réponses: 1
    Dernier message: 18/11/2005, 11h38
  3. Réponses: 13
    Dernier message: 13/10/2005, 16h03
  4. tri alphabétique dans un tableau deux dimensions
    Par *!!cocco!!* dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 06/12/2004, 21h38
  5. Passage d'un tableau à deux dimensions
    Par karl3i dans le forum C
    Réponses: 3
    Dernier message: 20/10/2003, 14h50

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