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 :

Mise en forme nuage de points


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Avril 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Avril 2011
    Messages : 58
    Par défaut Mise en forme nuage de points
    Bonjour,

    j'ai une série de données dans excel comme suit:
    Libellé X Y
    ma réf N°1 5 1
    ma réf N°2 9 9
    ma réf N°3 3 8
    ma réf N°4 6 3
    ma réf N°5 8 2
    ma réf N°6 1 7
    ma réf N°7 4 4
    ma réf N°8 7 5
    ma réf N°9 2 6

    J'ai besoin de mettre en forme un nuage de points réalisé à partie des valeurs X et Y:
    => les points de la partie supérieure droite ont une marque et un libellé en bleu
    => les points de la partie supérieure gauche ont une marque et un libellé en vert
    => les points de la partie inférieure droite ont une marque et un libellé en rouge
    => les points de la partie inférieure gauche ont une marque et un libellé en vert
    Les parties gauche et droite sont définies à partie de la médiane de X. Les parties inférieure et supérieure à partir de la médiane de Y.

    Une belle usine à gaz pour moi...

    Pour le moment, j'arrive seulement écrire une macro qui met un libellé et colore de la même couleur tous les points... C'est déjà un exploit pour moi!

    Pouvez-vous m'aider? Merci!

    Olive.

  2. #2
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Bonjour Olive,

    Si tu peux nous mettre ton début de code entre deux balises, on verrai mieux ce qu'il reste à faire

    Bertrand

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Exemple à adapter
    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
    Sub Tracer()
    Dim Lastlig As Long, i As Long, Klr As Long
    Dim mX As Double, mY As Double
    Dim PlageX As Range, PlageY As Range
    Dim Ch As ChartObject
     
    Application.ScreenUpdating = False
     
    'Definition des plages de cellules (ici X en B2:Bxx et Y en C2:Cxx de Feuil3)
    With Worksheets("Feuil3")                          ' à adapter
        Lastlig = .Cells(.Rows.Count, "A").End(xlUp).Row
        Set Ch = .ChartObjects.Add(200, 100, 400, 270)
        Set PlageX = .Range("B2:B" & Lastlig)
        Set PlageY = .Range("C2:C" & Lastlig)
    End With
     
    'Medianes de X et Y
    mX = Application.WorksheetFunction.Median(PlageX)
    mY = Application.WorksheetFunction.Median(PlageY)
     
    'Traçage graphique
    With Ch.Chart
        .ChartType = xlXYScatter
        .HasLegend = False
        With .SeriesCollection.NewSeries
            .XValues = PlageX
            .Values = PlageY
     
            For i = 1 To Lastlig - 1
                'Définition de la couleur en fonction du quadrant
                Klr = IIf(PlageX(i) > mX, IIf(PlageY(i) > mY, RGB(0, 0, 255), RGB(255, 0, 0)), IIf(PlageY(i) > mY, RGB(0, 255, 0), RGB(255, 255, 0)))
                .Points(i).Format.Fill.ForeColor.RGB = Klr
            Next i
        End With
    End With
    Set PlageX = Nothing
    Set PlageY = Nothing
    Set Ch = Nothing
    End Sub

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, faire une recherche sur : Andy Pope XY scatter colouration plot . Une mine.

  5. #5
    Membre confirmé
    Femme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Avril 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Avril 2011
    Messages : 58
    Par défaut
    Merci pour vos réponses.

    Mercatog,
    ton code ne fonctionne pas et mes compétences très limitées ne me permettent pas de corriger:
    .Points(i).Format.Fill.ForeColor.RGB = Klr
    Erreur d'exécution '438'
    Propriété ou méthode non gérée par cet objet

    Vois-tu d'où cela vient?

    Merci de ton aide.

    Olive.

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    J'ai oublié de préciser que j'ai testé sur excel 2007.
    Essaie d'utiliser l'enregistreur de macro pour changer la couleur du marqueur de ton graphique
    Ensuite, remplace la ligne enclenchant l'erreur par le résultat obtenu par l'enregistreur de macro.

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/09/2014, 00h01
  2. [XL-2003] mise en forme nuage de points
    Par Olive2011 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/09/2012, 12h24
  3. [Toutes versions] Mise en forme graphique nuage de points
    Par athos7776 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2010, 02h25
  4. Graphique mise en forme dernier point
    Par mat-tech dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/06/2008, 13h01
  5. Réponses: 1
    Dernier message: 21/05/2008, 14h28

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