Automatisation d'un nuage de point à partir d'un TCD

Bonjour à tous,

Je suis actuellement sur un projet avec Excel et je cherche à automatiser la création d’un graphique en nuage de point à partir d’une sélection dans un tableau croisé dynamique (TCD).
L’objectif est de simplifier le processus en évitant de recréer manuellement le graphique chaque fois que le TCD est mis à jour grâce au segment.
Je souhaite que le nom et le prenom soit sur le nuage de point de façàn automatique également !
Pouvez vous me donner le script VBA qui me permettrait de faire ça et me le mettre s’il vous plaît sur l’Excel que je joins à ma demande.
Je vous remercie pour votre aide et bonne journée.
BASE NUAGE DE POINT.xlsx (91,3 Ko)

je ne trouve pas un graphique (certainement pas un nuage de points) dans votre fichier.
Pouvez-vous donner un exemple d’un graphique comme vous le voulez voir ?

Bonjour

voici le fichier actualisé avec le nuage de point. Je voudrai en abscisse la rémunération et en ordonné l’âge ainsi que les nom qui s’actualise à chaque fois. Je peux le faire car la donnée est figé par contre avec le tcd c’est pas possible je pense que nous pouvons contourner avec une vba … merci encore pour votre précieuse
BASE NUAGE DE POINT.xlsx (96,1 Ko)

ce n’est pas vraiment un graphique « nuage » du TCD.
Un essai
BASE NUAGE DE POINT (1).xlsm (107,1 Ko)

Ce n’est pas le résultat que je voulais … mais j’ai déjà l’impression qu’il prend en compte le TCD donc c’est super il est possible de rajouter le nom et prénom sur chaque point ?

okay,
BASE NUAGE DE POINT (1).xlsm (109,3 Ko)

Je vous remercie :slight_smile: je pourrais avoir le langage VBA utilisé svp ?

Vous le trouvez dans l’editeur VBA avec le raccoursi ALT+F8 ou ici dessous + j’ai ajouté des commentaires
BASE NUAGE DE POINT (1).xlsm (109,9 Ko)

Sub Update_TCD()
     Set sh = Sheets("TCD")                  'la feuille
     With sh
          Set grph = .ChartObjects("Graphique 2").Chart     'le graphique
          For i = grph.FullSeriesCollection.Count To 2 Step -1     'supprimer les séries sauf série 1
               grph.FullSeriesCollection(i).Delete
          Next

          Set pvt = .PivotTables("Tableau croisé dynamique3")     'le TCD
          With pvt.PivotFields("Nom + Prénom + (-5%)")     'le pivotfield avec les noms
               On Error Resume Next
               For Each it In .PivotItems    'boucler les noms
                    'MsgBox it.Name
                    's = s & vbLf & it.Name
                    'GoTo 1
                    .PivotItems(it.Name).LabelRange.Select     'sélectionner la plage de ce nom
                    Set c = Selection
                    ptr = ptr + 1            'pointer
                    With grph
                         If .FullSeriesCollection.Count < ptr Then .SeriesCollection.NewSeries     'si nécessaire ajouter une série
                         With .FullSeriesCollection(ptr)
                              .Name = it.Name     'nom pour le legend
                              .Values = "=" & sh.Name & "!" & c.Offset(, 2).Address     'Y-valeurs
                              .XValues = "=" & sh.Name & "!" & c.Offset(, 1).Address     'X-valeurs
                              x = .Format.Line.ForeColor.RGB     'couleur de la série

                              .ApplyDataLabels     'utiliser les labels
                              With .DataLabels
                                   .ShowValue = False     'ne pas montrer les valeurs
                                   With .Format.TextFrame2.TextRange
                                        .InsertChartField msoChartFieldRange, "=" & sh.Name & "!" & c.Address     'utiliser le contenu de cette plage pour les labels
                                        .Font.Fill.ForeColor.RGB = x     'couleur = le même que la série
                                   End With
                                   .ShowRange = True
                              End With
                         End With
                    End With
               Next
          End With
     End With
End Sub

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.