Grah:faire apparaître info sur pointeur autre ke sélection

Bjr à toutes/tous,

j'ai fait un graph en nuage de points en ayant sélectionné 2 colonnes: colonne D et E (jusque ici: facile)

je souhaite que le pointeur m'affiche le nom du client (soit le colonne C).

Pouvez-vous m'aider svp ?? suis bloqué !!

Merci,

https://www.excel-pratique.com/~files/doc/CYK7AClasseur1.xls

Bonsoir

C'est possible par VBA en utilisant les évènements des graphiques

Le graphique doit être activé pour que ça fonctionne

(cet exemple n'est pas optimisé)

'--------------------------------
'Dans le module du classseur ThisWorkbook
Option Explicit

Dim ClTabChart As ClasseChart

Private Sub Workbook_Open()
    Dim i As Integer

    Set ClTabChart = New ClasseChart
    'Spécifie le 1er graphique de la Feuil1
    Set ClTabChart.Graph = Worksheets("Feuil1").ChartObjects(1).Chart

    Worksheets("Feuil1").ChartObjects(1).Activate

    Set Sh = ActiveChart.Shapes.AddTextbox _
        (msoTextOrientationHorizontal, 100, 100, 200#, 100#)
    Sh.Visible = msoFalse
    Sh.Name = "Rectangle 1"

    'désactive les intitulés et les valeurs
    Application.ShowChartTipNames = False
    Application.ShowChartTipValues = False
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Sh.Delete

    'réactive les intitulés et les valeurs
    Application.ShowChartTipNames = True
    Application.ShowChartTipValues = True
End Sub
'---------------------------
'Dans un module standard
Option Explicit

Public Sh As Shape
'-------------------------
'Dans un module de classe nommé ClasseChart

Option Explicit

Public WithEvents Graph As Chart

'*** Utilisation des évènements *********

Private Sub Graph_MouseMove(ByVal Button As Long, ByVal Shift As Long, _
                    ByVal x As Long, ByVal y As Long)

    Dim ElementID As Long
    Dim Arg1 As Long, Arg2 As Long

    On Error Resume Next
    ActiveChart.GetChartElement x, y, ElementID, Arg1, Arg2

    If Arg2 = 0 Then
        ActiveChart.Shapes("Rectangle 1").Visible = msoFalse
        Else

        With ActiveChart.Shapes("Rectangle 1")
            .Visible = msoTrue
            .TextFrame.Characters.Text = _
                "Client : " & Range("E3").Offset(Arg2, -2) & _
                vbCrLf & "Marge : " & _
                FormatPercent(Range("E3").Offset(Arg2, 0), 2)
            .Left = x - (x * 0.4)
            .Top = y - (y * 0.4)
        End With
    End If
End Sub

bonne soirée

michel

Bonsoir

Michel, avec ton code, ce type de classe n'est pas reconnu :

Dim ClTabChart As ClasseChart

??????

Merci

Bonsoir Felix

Je n'ai pas fais de test , peut tu tester si cela fonctionne ( je ne vois pas d'anomalie ), j'ai mis le code de Michel sur le fichier.

https://www.excel-pratique.com/~files/doc/graph_et_pointeur.zip

bonsoir à tous,

j'ai essayé le fichier zip mais ça ne fonctionne pas.

que voulez vous dire par "activer le graph" ?

9base-prime.xlsm (40.34 Ko)

rebonsoir

Michel, avec ton code, ce type de classe n'est pas reconnu :

Dim ClTabChart As ClasseChart

Le module de classe doit être nommé ClasseChart

j'ai essayé le fichier zip mais ça ne fonctionne pas.

Chez moi ça fonctionne... Merci Bruno pour le zip...

que voulez vous dire par "activer le graph" ?

La graphique doit être sélectionné

bonne soirée

michel

merci michel pour ta réponse mais je suis désolé d'insister.

ne connaissant rien à VBA et bien qu'ayant sélectionné le graphique, le pointeur ne m'indique pas le N°du client.

Salut le forum

Yakafe, merci de bien vouloir compléter ton Profil en indiquant ta Plate Forme et ta version Office.

Cela va surement nous aider à mieux diagnostiquer ton problème.

Mytå

bonjour,

profil mAJ

Bonjour

Essai celui ci, pour que la souris soit active et te donne le nom et la valeur, il faut dans un premier temps faire un click sur le graphique et ensuite la déplacer dans la zone

https://www.excel-pratique.com/~files/doc/JOVRIgraph_et_pointeur.zip

super

ça marche !!

merci bcp

Rechercher des sujets similaires à "grah apparaitre info pointeur selection"