Tablas Dinámicas con VBA Excel.

03/10/2006 - 22:32 por Daniel R | Informe spam
Saludos Programadores

Tengo una tabla dinámica en Excel 2003 cuyo origen de datos es un vista en
Sql Server 2000. Esta Tabla Dinámica (Pivot Table), tiene un "campo de
página" el cuál deseo cambiar de valor mediante VBA. Es decir, seleccionar un
valor de la lista de este campo mediante código en VBA.

Muchas gracias

Daniel R.
Caracas - Venezuela.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
04/10/2006 - 06:25 | Informe spam
hola, Daniel !

... tabla dinamica... origen de datos... en Sql Server 2000
... tiene un "campo de pagina"... deseo cambiar de valor mediante VBA
... seleccionar un valor de la lista de este campo mediante codigo en VBA.



1) la siguiente instruccion establece como valor 'seleccionado' del campo de pagina 1: -> (Todos)
-> [toma nota que 'este' elemento debe ser en ingles si se utiliza por codigo vba: -> (All) :D

ActiveSheet.PivotTables(1).PageFields(1).CurrentPage = "(all)"

2) si suponemos que sabes/conoces/... [+/- exactamente] el nombre/valor del elemento 'a seleccionar'...
solo sustituye el dato entre comillas -> "(all)" por el dato 'real' que necesitas ;)

3) si suponemos que NO sabes/conoces/... cuales son los elementos 'seleccionables'... -?-
el siguiente ejemplo te los muestra en un cuadro de mensajes [obviamente, puedes utilizar matrices, etc.]

Dim Sig As Byte, Msj As String
With ActiveSheet.PivotTables(1).PageFields(1)
Msj = "Elementos de " & .Name
For Sig = 1 To .PivotItems.Count
Msj = Msj & vbCr & Sig & ") " & .PivotItems(Sig).Name
Next
End With
MsgBox Msj

4) si suponemos que 'la cosa' [en la realidad] es ligeramente menos... 'sencilla' -?-
-> ya puedes comenzar a proporcionar los detalles faltantes ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Daniel R
04/10/2006 - 14:30 | Informe spam
Estimado Hector.

Gracias por tu respuesta, me ha servido, aunque tienes un forma muy
particular y graciosa de expresarte en tu redacción, imagino orientada a
muchos que ni siquiera saben que es lo que quieren...

Estaba bien encaminado en mi solución... sólo que en vez de PageField
utilizaba PivotField...

Thanks again

Daniel R




"Héctor Miguel" wrote:

hola, Daniel !

> ... tabla dinamica... origen de datos... en Sql Server 2000
> ... tiene un "campo de pagina"... deseo cambiar de valor mediante VBA
> ... seleccionar un valor de la lista de este campo mediante codigo en VBA.

1) la siguiente instruccion establece como valor 'seleccionado' del campo de pagina 1: -> (Todos)
-> [toma nota que 'este' elemento debe ser en ingles si se utiliza por codigo vba: -> (All) :D

ActiveSheet.PivotTables(1).PageFields(1).CurrentPage = "(all)"

2) si suponemos que sabes/conoces/... [+/- exactamente] el nombre/valor del elemento 'a seleccionar'...
solo sustituye el dato entre comillas -> "(all)" por el dato 'real' que necesitas ;)

3) si suponemos que NO sabes/conoces/... cuales son los elementos 'seleccionables'... -?-
el siguiente ejemplo te los muestra en un cuadro de mensajes [obviamente, puedes utilizar matrices, etc.]

Dim Sig As Byte, Msj As String
With ActiveSheet.PivotTables(1).PageFields(1)
Msj = "Elementos de " & .Name
For Sig = 1 To .PivotItems.Count
Msj = Msj & vbCr & Sig & ") " & .PivotItems(Sig).Name
Next
End With
MsgBox Msj

4) si suponemos que 'la cosa' [en la realidad] es ligeramente menos... 'sencilla' -?-
-> ya puedes comenzar a proporcionar los detalles faltantes ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida