Poner un avance de línea en una cadena integrada en una fórmula de Excel en una etiqueta de datos

Poner un avance de línea en una cadena integrada en una fórmula de Excel en una etiqueta de datos

Necesito construir una etiqueta de datos en un gráfico de Excel usando una fórmula que construye la cadena a partir de dos celdas con un salto de línea entre ellas.

Esto funcionaría en una fórmula de celda:

=A1 & CHAR(10) & B1

y esto funcionaría en VBA

=A1 & Chr(10) & B1

como en esta publicación:http://www.ozgrid.com/forum/showthread.php?t=40644pero ninguno de estos enfoques funciona dentro de una etiqueta de datos. ¿Algunas ideas?

Respuesta1

En VBA puedes usar esto:

Dim str as String

str = Range("A").Value & vbCrlf & Range("B").Value

vbCrlf le dará un salto de línea...

Respuesta2

Esto funcionó para mí en VBA:

Sheet1.ChartObjects(1).Chart.SeriesCollection(1).Name = "a" & vbCr & "b"

Y como se dijo, esto funciona con una fórmula:

=DATASERIES(Sheet1!$E$1,Sheet1!$A$2:$A$4,Sheet1!$B$2:$B$4,1)

E1 = "a" & CHAR(10) & "b"

E1 debe tener configurado el ajuste de palabras.

SERIE DE DATOS es lo que ve en la sección de edición de fórmulas, cuando ha seleccionado su serie.

Respuesta3

Así es como lo hice funcionar.

Paso 1: cree una nueva columna con ajuste de palabras habilitado con la fórmula =A1 & CHAR(10) & B1en la celda C1y arrástrela hacia abajo según corresponda

Paso 2: ejecute el siguiente código VBA para configurar cada etiqueta de datos para que apunte a la celda correcta

Sub SetDataLabels()

    Dim ChartName As String
    ChartName = "My Chart's Name"

    With ActiveSheet.ChartObjects(ChartName).Chart

        Dim Series As Integer
        Series = 4

        With .SeriesCollection(Series)

            Dim currentPoint As Integer

            For currentPoint = 1 To .Points.Count

                .Points(currentPoint).DataLabel.Text = Range("C" & currentPoint).Text

            Next currentPoint
        End With

    End With

End Sub

información relacionada