Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Excel 2007: Problemas con macro que arma una tabla dinamica

169 views
Skip to first unread message

alejo

unread,
Aug 12, 2009, 9:41:16 PM8/12/09
to jame...@hotmail.com
Hola,

Este problema es en Excel 2007
Les cuento que tengo problemas con una macro la cual crea una tabla
dinamica comun y corriente, uso el grabador de macros y la hago sin
problema. Pero cuando la ejecuto me sale un error.

Prueben a hacer una tabla con unos nombres en la columna A, unos
codigos en la Columna B, tales como ce, xa, etc. inventenselos y en la
Columna C, valores.

nombre tipo valor
alejo ca 4578
conejo eg 4578
sdffdsfd th 4578
sdfsdf fg 4578
jkjhjk ca 4578
fdgbdfd eg 4578
alejo th 4578
conejo fg 4578
sdffdsfd ca 4578
sdfsdf eg 4578
jkjhjk th 4578
fdgbdfd fg 4578
alejo ca 4578
conejo eg 4578
sdffdsfd th 4578
sdfsdf fg 4578
jkjhjk th 4578
fdgbdfd fg 4578

ahora, graben una macro en Excel 2007, y tomen esta tabla, armen una
tabla dinamica y coloquenla en una hoja nueva, agrupen en las filas el
tipo y en los datos el valor.

Mientras graban la macro, excel lo hace sin problemas, pero PRUEBEN
EJECUTARLA Y VERAN QUE SALE UN ERROR.

Este es el codigo que me grabó el grabador de macros:
Sub Macro1()
'
' Macro1 Macro
'

'
Sheets.Add
'Este es el bloque problema: sale el error "argumento o llamada o
procedimiento no valida"
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase,
SourceData:= _
"Hoja1!F1C1:F19C3",
Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="Hoja4!F3C1", TableName:="Tabla dinámica1",
_
DefaultVersion:=xlPivotTableVersion12

Sheets("Hoja4").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("Tabla dinámica1").PivotFields
("tipo")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("Tabla dinámica1").AddDataField
ActiveSheet.PivotTables _
("Tabla dinámica1").PivotFields("valor"), "Suma de valor",
xlSum
End Sub

Le he botado corriente como decimos en Colombia y no se que pueda ser.
Les agradezco su colaboracion.

Saludos,

H�ctor Miguel

unread,
Aug 12, 2009, 11:35:13 PM8/12/09
to
hola, alejo !

1) la grabadora usa como referencia al "SourceData" el estilo...=> FC (F1C1 <-> Fila y Columna)
vba que es US-Centric "espera" la nomenclatura en ingles... => RC (R1C1 <-> Row y Column)
-> OJO: que pasa igual con el "TableDestination:=..."

2) para el "SourceData=" puedes usar instrucciones del tipo...
Range("a1").CurrentRegion
.Offset (y/u) .Offset(...).Resize(...)

-> prueba cambiando la seccion del SourceData con algo +/- como lo siguiente:
..., SourceData:=Worksheets("hoja1").UsedRange.Address(1, 1, xlR1C1, 1)

o... si la hoja tiene dos (o mas) "areas" de trabajo en uso, prueba cambiando a:
..., SourceData:=Worksheets("hoja1").Range("a1").CurrentRegion.Address(1, 1, xlR1C1, 1)

tambien puedes definir un rango dinamico directamente sobre la hoja de calculo
(p.e.) visita: http://www.contextures.com/xlPivot01.html

3) tambien es posible el uso de referencias "directas" al estilo A1 (sourcedata y tabledestination) -p.e.-
... SourceData:=Worksheets("hoja1").Range("a1:c19")
... TableDestination:=Worksheets("hoja4").Range("c3")

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __


Este problema es en Excel 2007
Les cuento que tengo problemas con una macro la cual crea una tabla dinamica comun y corriente

uso el grabador de macros y la hago sin problema. Pero cuando la ejecuto me sale un error.

Prueben a hacer una tabla con unos nombres en la columna A, unos codigos en la Columna B, tales como ce, xa, etc.
inventenselos y en la Columna C, valores.

nombre tipo valor
alejo ca 4578
conejo eg 4578
sdffdsfd th 4578
sdfsdf fg 4578
jkjhjk ca 4578

fdgbdfd eg 4578 (...)

ahora, graben una macro en Excel 2007, y tomen esta tabla, armen una tabla dinamica y coloquenla en una hoja nueva

agrupen en las filas el tipo y en los datos el valor.

Mientras graban la macro, excel lo hace sin problemas, pero PRUEBEN EJECUTARLA Y VERAN QUE SALE UN ERROR.

Este es el codigo que me grab� el grabador de macros:
Sub Macro1()


Sheets.Add
'Este es el bloque problema: sale el error "argumento o llamada o procedimiento no valida"
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Hoja1!F1C1:F19C3", Version:=xlPivotTableVersion12).CreatePivotTable _

TableDestination:="Hoja4!F3C1", TableName:="Tabla din�mica1", _


DefaultVersion:=xlPivotTableVersion12
Sheets("Hoja4").Select
Cells(3, 1).Select

With ActiveSheet.PivotTables("Tabla din�mica1").PivotFields("tipo")


.Orientation = xlRowField
.Position = 1
End With

ActiveSheet.PivotTables("Tabla din�mica1").AddDataField ActiveSheet.PivotTables _
("Tabla din�mica1").PivotFields("valor"), "Suma de valor", xlSum
End Sub

Le he botado corriente como decimos en Colombia y no se que pueda ser.

Les agradezco su colaboracion...


0 new messages