Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Karina
Karina
Lo que pide nuestro amigo es que , basndonos en los elementos de un campo de una Tabla dinmica,
poder seleccionar fuera de la tabla dinmica, por ejemplo, con un ComboBox uno de los elementos, y
que ese elemento aparezca en el Grfico dinmico con una columna de color distinto a los dems
elementos.
Veamos cul es nuestro origen de datos y como queda tanto nuestra Tabla dinmica como
nuestroGrfico dinmico:
Simplemente hemos generado una Tabla (Ctrl+q) sobre nuestro origen de datos, y la hemos resumido
con una Tabla dinmica, de la cual hemos generado un Grfico dinmico tal cual muestra la
imagen.
Nuestro objetivo ahora es conseguir que a nuestra eleccin, sobre un Concepto cambie nuestro
grfico, mostrando la columna del 'Concepto' seleccionado de otro color.
Para ello, en primer lugar, insertaremos un Combobox(cuadro combinado) desde la Ficha
Programador > Grupo opciones Controles > Insertar > Controles ActiveX > Cuadro Combinado
Una vez 'incrustado' en la hoja de clculo, desde el mismo gupo de opciones, seleccionaremos y
mostraremos la ventana de Propiedades:
1.
2.
3.
4.
5.
6.
7.
8.
.PivotCache.MissingItemsLimit = _
9.
xlMissingItemsNone
10. .RefreshTable
11. .PivotFields("Concepto").AutoSort _
12. xlAscending, "Concepto"
13. End With
14.
15. 'limpiamos el ComboBox
16. ComboBox1.Clear
17.
18. 'Vamos a llenar dinmicamente el combobox
19. 'con los ELEMENTOS del campo de TD
20. With ActiveSheet.PivotTables("Tabla dinmica1")
21. eltos = .PivotFields("Concepto").PivotItems.Count
22.
23. For i = 1 To eltos
24. 'Aadimos los ELEMENTOS de la Tabla dinmica al combobox
25. ComboBox1.AddItem ActiveSheet.PivotTables("Tabla dinmica1").PivotFields("Concepto").PivotI
tems(i)
26. Next
27. End With
28.
29. End Sub
Con este cdigo hemos conseguido que el desplegable del ComboBox muestre slo los valores del
campo 'Concepto' de la tabla dinmica sobre la que trabajamos.
Nos queda ahora generar el cdigo que cambie el color de la columna del grfico dinmico en funcin
al valor desplegado con nuestro ComboBox. Para ello insertaremos un Mdulo en el Explorador de
Proyectos del Editor de VBA:
view plainprint?
1.
Sub ColumnaDiferente()
2.
3.
4.
5.
6.
nombrehoja = ActiveSheet.Name
7.
rangocelda = ActiveCell.Address
8.
9.
x = Sheets("Datos").Range("H1").Value
19. Else
20. On Error Resume Next
21. .Points(i).Interior.Color = RGB(0, 0, 255)
22. .Points(i).HasDataLabel = False
23. End If
24. Next i
25. End With
26.
27. Sheets(nombrehoja).Range(rangocelda).Select
28.
29. End Sub