Etiquettes de données et nuage de points vba

Vilain

XLDnaute Accro
Bonjour à tous,

J'ai déjà parlé de ce problème hier mais je reviens avec une approche différente, d'ou la création d'un nouveau sujet.
Voici une macro que j'ai moi-même créée pour l'affichage des étiquettes de données sur un nuage de points.
Elle est pratique car elle permet de sélectionner l'emplacement des infos (et ainsi de supprimer au préalable certains noms si on ne souhaite pas tous les voir apparaître).

Aujourd'hui, je souhaite la modifier pour ajouter automatiquement les étiquettes (et donc ne plus avoir à faire la sélection. Oui mais voila, entre temps il s'est passé plusieurs mois et mes faibles connaissances en VBA se sont évaporées et je ne parviens pas à la modifier.
Pour info, mes données sont en colonne AO et mes noms en colonne E.

Merci d'avance pour votre aide. Je suis à votre disposition si vous avez des questions.

A plus

Code:
Sub Etiquettes()
Dim Données As Range
Dim Noms As Range
Dim i
Set Données = Application.InputBox("Sélectionnez la plage de données", "SÉLECTION", Type:=8)
Set Noms = Application.InputBox("Sélectionnez la plage des noms", "SÉLECTION", Type:=8)
With ActiveChart.SeriesCollection(1)
        .ApplyDataLabels Type:=xlDataLabelsShowLabel
        For i = 1 To Données.Count
          With .Points(i)
            .DataLabel.Text = noms(i)
          End With
        Next i
   End With
ActiveChart.Deselect
End Sub
 
Dernière édition:

Vilain

XLDnaute Accro
Re : Etiquettes de données et nuage de points vba

Bonjour,

Je ne connaissais pas cet addin. Ceci dit, je pense pas que cela me convienne, car si j'ai bien compris, il faut qu'il soit installé sur tous les postes qui vons utiliser le fichier, non ? Mon fichier étant destiné à être diffusé, c'est une solution qui ne me convient pas.
Les modifications à faire sont simples et rapides, mais cela reste un mystère pour moi pour le moment...
Merci d'avance pour le coup de main.

A plus
 

Misange

XLDnaute Barbatruc
Re : Etiquettes de données et nuage de points vba

L'addin est utilisé sur le poste qui crée le graphique. Le graphique transmis sur un poste qui n'a pas l'addin conserve bien sur les étiquettes (ce n'est jamais qu'une macro complémentaire...), qui peuvent être modifiées à la main ou par macro.
 

Vilain

XLDnaute Accro
Re : Etiquettes de données et nuage de points vba

Re,

Merci pour ces précisions.
Le problème c'est que les gens à qui je vais donner le fichier vous eux aussi avoir à faire tourner la macro, qui génère des graphiques à chaque fois, d'ou ma nécéssité d'inclure dans ma macro l'ajout des étiquettes.

A plus
 

Vilain

XLDnaute Accro
Re : Etiquettes de données et nuage de points vba

Re,

J'ajoute un peu de difficultés à ma demande : Je souhaite 2 choses
-L'ajout des étiquettes de données avec les noms
-la colorisation des points en rose pour les femmes et en bleus pour les hommes.
Je joins un fichier exemple avec la structure exact de mon fichier.
Attention, longueur de ma base de données peut varier
Merci d'avance.

A plus
 

Pièces jointes

  • test.xlsm
    54 KB · Affichages: 91
  • test.xlsm
    54 KB · Affichages: 100
  • test.xlsm
    54 KB · Affichages: 107

MJ13

XLDnaute Barbatruc
Re : [Non résolu]Etiquettes de données et nuage de points vba

Bonjour à tous

Tu peux tester cette macro en nommant ta zone contennant Masculin et Féminin Zone.

Code:
Sub Etiquette_Masculin_feminin()
For i = 1 To Range("zone").Count
ActiveChart.SeriesCollection(1).Points(i).Select
If Range("zone").Item(i) = "Masculin" Then Selection.MarkerBackgroundColor = RGB(0, 0, 255)
If Range("zone").Item(i) = "Féminin" Then Selection.MarkerBackgroundColor = RGB(255, 0, 0)
Next
End Sub
 

Vilain

XLDnaute Accro
Re : [Non résolu]Etiquettes de données et nuage de points vba

Re, Salut MJ13

@Imocarpe : à défaut de mieux pour le moment, tu peux utiliser le code que j'ai mis dans mon premier post
@MJ13 : Merci pour ton coup de main, cela fonctionne, j'ai maintenant mes couleurs, reste plus que les étiquettes ! On avance

J'ai aussi avancé de mon côté, la macro tourne mais ne renvoie pas ce que je veux. Voici mon code :
Code:
Sub MAJ_etiquettes()
Sheets("Nuage de points grade").Select
Dim i&, plg As Range
Set plg = Sheets("BasePourAnalyse").Range("AW2:AW1869")
    With ActiveChart.SeriesCollection(1)
        .ApplyDataLabels Type:=xlDataLabelsShowLabel
        For i = 1 To plg.Count
          With .Points(i)
            .MarkerBackgroundColorIndex = 7 - 40 * (plg(i).Value = "Masculin")
            .MarkerForegroundColorIndex = 7 - 40 * (plg(i).Value = "Masculin")
            .DataLabel.Text = ThisWorkbook.Sheets("BasePourAnalyse").Cells(i + 1, 5)
          End With
        Next i
   End With
ActiveChart.Deselect
End Sub
Comme ma base est sous forme de tableau, il faudrait changer Range("AW2:AW1869") mais je n'y arrive pas. Par contre, j'ai l'impression que ça marche pour les couleurs. Par contre, toutes les étiquettes ne s'affichent pas.
De plus, j'ai plusieurs graphiques et je dois recopier le code en changeant le nom à chaque fois. Y A-t-il plus simple ?

J'en peux plus de ce truc et mon rendu est demain soir. Je suis de plus en plus en stress...
Merci à tous pour l'aide apporter.

A plus
 

MJ13

XLDnaute Barbatruc
Re : [Non résolu]Etiquettes de données et nuage de points vba

Re

Pour les étiquettes en nommant la zone contenant les noms ZoneNom:

Code:
Sub Etiquette_ZoneNom()
'Nommer la zone contenant les étiquettes ZoneNom
Application.ScreenUpdating = False
'ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.SeriesCollection(1).ApplyDataLabels
For i = 1 To Range("zoneNom").Count
'ActiveChart.SeriesCollection(1).Points(i).Select
ActiveChart.SeriesCollection(1).Points(i).DataLabel.Text = Range("zoneNom").Item(i)
Next
Application.ScreenUpdating = True
End Sub
 

job75

XLDnaute Barbatruc
Re : [Non résolu]Etiquettes de données et nuage de points vba

Bonjour Gillus69, Misange, Imocarpe, Edit : et Michel que je n'avais pas vu,

Sur Excel 2010 cette macro fonctionne bien :

Code:
Sub Etiquettes()
Dim cel As Range
Application.ScreenUpdating = False
For Each cel In Feuil3.[E2:E10000].SpecialCells(xlCellTypeConstants)
  With ActiveChart.SeriesCollection(1).Points(cel.Row - 1)
    .HasDataLabel = True
    .DataLabel.Text = cel.Text
    With .DataLabel.Format.Fill
      .Visible = msoTrue
      .Solid
      .Transparency = 0
      .ForeColor.TintAndShade = 0
      If cel.Offset(, 44).Text Like "M*" Then
        .ForeColor.ObjectThemeColor = msoThemeColorText2
        .ForeColor.Brightness = 0.8000000119
      Else
        .ForeColor.ObjectThemeColor = msoThemeColorAccent6
        .ForeColor.Brightness = 0.6000000238
      End If
    End With

  End With
Next
End Sub
Elle se lance quand on active les feuilles graphiques.

Nota : pour les couleurs, j'ai simplement utilisé l'enregistreur de macro.

Fichier joint.

A+
 

Pièces jointes

  • DataLabels(1).xlsm
    59 KB · Affichages: 136
Dernière édition:

Vilain

XLDnaute Accro
Re : [Non résolu]Etiquettes de données et nuage de points vba

Bonjour à tous,

Merci beaucoup pout ces solutions qui me conviennent parfaitement !
Je vais adapter tout ça à mon fichier en prenant un petit bout de chacun.
Encore un grand merci, je commençais réélement à desesperer.

A plus
 

Discussions similaires

Réponses
2
Affichages
213

Statistiques des forums

Discussions
298 770
Messages
1 971 598
Membres
203 411
dernier inscrit
Marc1515