Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenas tardes,
A continuación os muestro el código que tengo en el editor de módulos (MACRO) en donde genero dimensiones y expresiones de forma dínamica en un chart (tabla dinámica).
Para las expresiones (marcada la línea en XXX1: ), una vez las creo luego les cambio el label para que sea más legible pero en las dimensiones no lo consiguo utilizando el código marcado en XXX2:.
Dim vDim
Dim vExp
'.........................................................
sub haySeleccion
set x = ActiveDocument.GetCurrentSelections
s = x.Selections
v = x.VarId
bDim = false
bExp = false
for i = lbound(s) to ubound(s)
'msgbox v(i) & " = " & s(i)
if v(i) = "%NombreDim" then
bDim = true
vDim = s(i)
end if
if v(i) = "%NombreExp" then
bExp = true
vExp = s(i)
end if
next
if bDim and bExp then
ConstruirTablaDinamica
end if
end sub
'.........................................................
sub ConstruirTablaDinamica
set chart = ActiveDocument.GetSheetObject("CH17")
set dims = chart.GetProperties.Dimensions
set exps = chart.GetProperties.Expressions
'Borramos las dimensiones
for i=0 to dims.Count
chart.RemoveDimension 0
next
'Creamos las dimensiones seleccionadas
set dimValues = ActiveDocument.fields("%Dimension").getPossibleValues
set dimSelection = ActiveDocument.fields("%NombreDim").GetSelectedValues
for i=0 to dimValues.Count - 1
'msgbox(dimSelection.Item(i).text)
chart.AddDimension dimValues.Item(i).text
set p = chart.GetProperties
set dims = p.Dimensions
next
'Creamos las expresiones seleccionadas
for i=0 to exps.Count - 1
chart.RemoveExpression 0
next
set expValues = ActiveDocument.fields("%Expresion").getPossibleValues
set expSelection = ActiveDocument.fields("%NombreExp").GetSelectedValues
for i=0 to expValues.Count - 1
'msgbox(expValues.Item(i).Text)
chart.AddExpression expValues.Item(i).Text
set p = chart.GetProperties
set exps = p.Expressions
set expItem = p.Expressions.Item(i).Item(0).Data.ExpressionVisual.NumberPresentation
expItem.Dec = ","
expItem.Fmt = "#.##0,00;-#.##0,00"
expItem.nDec = 2
expItem.Thou = "."
expItem.Type = 11 'fixed decimal
expItem.UseThou = 1
chart.SetProperties p
next
end sub
He estado buceando y he visto que en teoría se haría así, pero no me funciona.
Me pueden echar una mano?
Gracias de antemano.
Creo que sería mucho mas sencillo utilizar variables en las descripciones y cambiarlas por medio de acciones o incluso cambiar las variables por medio de macros si no te alcanza con la funcionalidad de las acciones.