Etiqueta de nube de puntos al vuelo del ratón

hortensette34 Mensajes publicados 4 Estado Miembro -  
hortensette34 Mensajes publicados 4 Estado Miembro -
Hola,

Gracias primero por toda esta información que ustedes proporcionan. Me pregunto si no habrían encontrado una manera de mostrar las etiquetas justo en el momento en que pasamos el ratón sobre el punto. Si muestro todas las etiquetas, mi archivo es ilegible.

Les agradezco

Configuración: Windows 7 / Chrome 46.0.2490.71

2 respuestas

  1. hortensette34 Mensajes publicados 4 Estado Miembro
     
    Merci. He utilizado algunas cosas. No puedo controlar dos gráficos de series diferentes con la gestión de eventos en un módulo de clase y la especificación de mi objeto en un libro abierto. ¿Alguien podría corregir esto o indicarme dónde estoy equivocado? Muchas gracias. Pongo en un módulo de clase, clase gráfico.

    Option Explicit

    Public WithEvents chart1 As Chart

    '*** Utilización de eventos *********

    Private Sub chart1_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
    ChartObjects(1).GetChartElement x, y, ElementID, Arg1, Arg2

    If Arg2 = 0 Then
    ActiveChart.Shapes("Rectángulo 1").Visible = msoFalse
    Else

    With ActiveChart.Shapes("Rectángulo 1")
    .Visible = msoTrue
    .TextFrame.Characters.Text = _
    Range("C1").Offset(Arg2, -2) & vbCrLf & _
    Range("C1").Offset(Arg2, -1) & vbCrLf & _
    Range("C1").Offset(Arg2, 0)
    .Left = x - (x * 0.4)
    .Top = y - (y * 0.4)
    End With
    End If
    End Sub

    Option Explicit

    Public WithEvents chart2 As Chart

    '*** Utilización de eventos *********

    Private Sub chart2_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
    ChartObjects(2).GetChartElement x, y, ElementID, Arg1, Arg2

    If Arg2 = 0 Then
    ActiveChart.Shapes("Rectángulo 1").Visible = msoFalse
    Else

    With ActiveChart.Shapes("Rectángulo 1")
    .Visible = msoTrue
    .TextFrame.Characters.Text = _
    Range("C1").Offset(Arg2, -2) & vbCrLf & _
    Range("C1").Offset(Arg2, -1) & vbCrLf & _
    Range("C1").Offset(Arg2, 0)
    .Left = x - (x * 0.4)
    .Top = y - (y * 0.4)
    End With
    End If
    End Sub

    En otro módulo de clase Aplicación
    Option Explicit

    Public WithEvents XL As Excel.Application

    Dim ClTabChart() As ClaseChart

    'Permite integrar los gráficos incrustados de la hoja activa
    Public Sub XL_SheetActivate(ByVal Hoja As Object)
    Dim i As Integer
    'Verifica que se trata de una hoja de cálculo
    If TypeOf Sheet3("Y.S Densidad") Is Worksheet Then
    'Verifica si hay gráficos en la hoja
    If Sheet3("Y.S Densidad").ChartObjects.Count = 0 Then Exit Sub
    'Si hay gráficos,
    'bucle para integrarlos en el módulo de clase
    For i = 1 To Sheet3("Y.S Densidad").ChartObjects.Count
    ReDim Preserve ClTabChart(i)
    Set ClTabChart(i) = New ClaseChart
    Set ClTabChart(i).Graph = Sheet3("Y.S Densidad").ChartObjects(i).Chart
    Next i
    End If
    End Sub

    'Permite limpiar la clase al desactivar la hoja
    Private Sub XL_SheetDeactivate(ByVal Hoja As Object)
    Dim j As Integer
    On Error Resume Next
    For j = 1 To UBound(ClTabChart)
    Set ClTabChart(j).Graph = Nothing
    Next
    End Sub
    En Este libro:

    Option Explicit
    Dim ClTabChart1 As ClaseChart
    Dim ClTabChart2 As ClaseChart
    Dim XlAppli As New ClaseAppli

    Private Sub Workbook_Open()
    Set XlAppli.XL = Excel.Application
    Sheets("Y.S Densidad").Activate
    Set ClTabChart1 = New ClaseChart
    Set ClTabChart2 = New ClaseChart
    Set ClTabChart1.Graph = Worksheets("Y.S Densidad").ChartObjects(1).Chart
    Set ClTabChart2.Graph = Worksheets("Y.S Densidad").ChartObjects(2).Chart

    'desactiva los encabezados y los valores
    Application.ShowChartTipNames = False
    Application.ShowChartTipValues = False
    End Sub

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    'reactiva los encabezados y los valores
    Application.ShowChartTipNames = True
    Application.ShowChartTipValues = True
    End Sub

    error de compilación atributo incorrecto
    0