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) & B1
en la celda C1
y 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