Como colocar un valor de una tabla dinámica en un TextBox

01/12/2007 - 20:39 por YAGUASO | Informe spam
Hola amigos requiero que alguien me indique como colocar un valor, que está
en Datos de una Tabla Dinámica (ejm Promedio de ventas), a un TextBox de un
UserForm (mediante VBA) con los datos seleccionados de dos ComboBoxes (ejm.
APELLIDOS, NOMBRE) que son los mismos del campo de Fila de la Tabla Dinámica.



ActiveSheet.PivotTables("Tabla dinámica1").AddFields RowFields:=Array( _
"APELLIDOS", "NOMBRE", "Datos")
With ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Promedio
Ventas")
.Orientation = xlDataField
.Position = 1
.Function = xlAverage
End With
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("APELLIDOS")
.PivotItems("0").Visible = False
.PivotItems("PEREZ").Visible = False
.PivotItems("RODRIGUEZ”).Visible = False
.PivotItems("ROMITA").Visible = False
End With
With ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("NOMBRE")
.PivotItems("0").Visible = False
.PivotItems("CARLOS").Visible = False
.PivotItems("JUAN").Visible = False
.PivotItems("JULIAN").Visible = False
End With
End Sub

En definitiva lo que se requiere es colocar en un TextBox (de un UserForm1)
el Promedio de Ventas, de la Tabla dinámica 1, de un vendedor, seleccionando
los Ítems, APELLIDO y el NOMBRE (ejm González José) de dos ComboBoxes del
UserForm referido. Estos Ítems son los mismos de la Tabla dinámica.
Saludos……..O. Yaguas
 

Leer las respuestas

#1 Héctor Miguel
02/12/2007 - 06:41 | Informe spam
hola, !

... como colocar un valor, que esta en Datos de una Tabla Dinamica (ejm Promedio de ventas)
a un TextBox de un UserForm (mediante VBA) con los datos seleccionados de dos ComboBoxes
(ejm. APELLIDOS, NOMBRE) que son los mismos del campo de Fila de la Tabla Dinamica.



1) la fraccion de codigo que expones no muestra el arreglo de tu tabla dinamica (pareciera no tener que ver con tu consulta) -?-
y no es claro si la TD la creas por el mismo codigo y/o se trata de la primera/unica TD en el libro (por el nombre de la TD)
ni por que es que le agregas (3) campos (adicionales ?) de fila a la misma por codigo
(supongo que el campo "promedio de ventas" es un campo de columna) -?-

2) tampoco se aprecia cual es el arreglo de los datos de origen de la TD (rangos, titulos en columna y tipo de datos)
o vienen de alguna consulta a bases de datos externas... o ???

3) asi... 'a bote pronto' y en virtud de los datos (des)conocidos...

op1: usar una celda auxiliar en la hoja donde esta la TD basada en la seleccion de los combox para:
a) usar la interseccion de titulos de fila y columna
b) usar la funcion de hoja de calculo =importardatosdinamicos(...)
c) probablemente otras que puedas despues vincular o mandar al textbox

op2: similar a lo anterior pero usando la funcion de vba Evaluate("texto_de_formula_en_ingles")

op3: (de plano) desarrollar codigo en vba para buscar la interseccion de los campos (fila y columna) de la TD
donde coinciden las selecciones de los combos

op4: revisa el apartado P (de pivot tables) de la siguiente pagina:
-> http://www.contextures.com/tiptech.html

-> probablemente hay mas alternativas, pero (insisto) como los datos que expones no son suficientes... -???-

saludos,
hector.

__ el resto de la consulta __



ActiveSheet.PivotTables("Tabla dinamica1").AddFields RowFields:=Array( _
"APELLIDOS", "NOMBRE", "Datos")
With ActiveSheet.PivotTables("Tabla dinamica1").PivotFields("Promedio Ventas")
.Orientation = xlDataField
.Position = 1
.Function = xlAverage
End With
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("Tabla dinamica1").PivotFields("APELLIDOS")
.PivotItems("0").Visible = False
.PivotItems("PEREZ").Visible = False
.PivotItems("RODRIGUEZâ€

Preguntas similares