sono quattro giorni che cerco fare una pivot valida sempre e di aggiornare il layout. Provo e riprovo alla fine vado al topic
'http://www.pc-facile.com/forum/viewtopic.php?p=636355
Parola magica di Anthony: Selection.PivotTable
Ovviamente in questo caso, e' opportuno che il codice faccia riferimento non a una tabella specifica (come si faceva col codice ActiveSheet.Range("A5").PivotTable.etc etc) ma alla tabella selezionata; quindi usando
Selection.PivotTable.etc etc
Se la macro la registri allora il codice include normalmente qualcosa come ActiveSheet.PivotTables("Tabella_pivotN").Etc Etc
Per renderlo universale dovrai modificare la parte ActiveSheet.PivotTables("Tabella_pivotN") come da suggerimento precedente.
La soluzione era ad un passo. Posto il codice con un esempio assemblato con quanto ho trovato, testato e...Con la parola magica di Anthony Selection.PivotTable
Al posto di CAMPO, il nome campo che si vuole.
Grazie Anthony per la 1000ma volta!!!
- Codice: Seleziona tutto
Sub Pivot_creazione_e_layout()
'On Error Resume Next
Sheets("Fogliodati ").Select
Dim objTable As PivotTable, objField As PivotField
Range("A1").Select
Set objTable = Foglio1.PivotTableWizard
' Specify row and column fields.
Set objField = objTable.PivotFields("CAMPO")
objField.Orientation = xlRowField
objField.Position = 1
Set objField = objTable.PivotFields("CAMPO ")
objField.Orientation = xlRowField
objField.Position = 2
Set objField = objTable.PivotFields("CAMPO ")
objField.Orientation = xlRowField
objField.Position = 3
Set objField = objTable.PivotFields("CAMPO")
objField.Orientation = xlColumnField
objField.Position = 1
' Specify a data field with its summary
' function and format.
Set objField = objTable.PivotFields("CAMPO ")
objField.Orientation = xlDataField
objField.Function = xlSum
objField.NumberFormat = "$ #,##0"
Set objField = objTable.PivotFields("CAMPO ")
objField.Orientation = xlDataField
objField.Function = xlSum
objField.NumberFormat = "$ #,##0"
Set objField = objTable.PivotFields("CAMPO ")
objField.Orientation = xlDataField
objField.Function = xlSum
objField.NumberFormat = "$ #,##0"
Set objField = objTable.PivotFields("CAMPO")
objField.Orientation = xlDataField
objField.Function = xlSum
objField.NumberFormat = "$ #,##0"
Cells.Select
Selection.Style = "Comma"
' Specify a page field.
'Set objField = objTable.PivotFields("CAMPO ")
'objField.Orientation = xlPageField
' Preview the new PivotTable report.
' ActiveSheet.PrintPreview
' Prompt the user whether to delete the PivotTable.
' Application.DisplayAlerts = False
' If MsgBox("Delete the PivotTable?", vbYesNo) = vbYes Then
' ActiveSheet.Delete
' End If
' Application.DisplayAlerts = True
With Selection.PivotTable.DataPivotField
.Orientation = xlColumnField
.Position = 2
End With
Selection.PivotTable.PivotFields("CAMPO "). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
Selection.PivotTable.PivotFields("CAMPO " _
).Subtotals = Array(False, False, False, False, False, False, False, False, False, False _
, False, False)
Selection.PivotTable.PivotFields("CAMPO "). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
Selection.PivotTable.PivotFields("CAMPO "). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
Selection.PivotTable.PivotFields("CAMPO "). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
Selection.PivotTable.PivotFields("CAMPO "). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
Selection.PivotTable.PivotFields("CAMPO "). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
Selection.PivotTable.PivotFields("CAMPO ").Subtotals = _
Array(False, False, False, False, False, False, False, False, False, False, False, False)
Selection.PivotTable.PivotFields("CAMPO "). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
Selection.PivotTable.PivotFields("CAMPO "). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
Selection.PivotTable.PivotFields("CAMPO ").Subtotals = _
Array(False, False, False, False, False, False, False, False, False, False, False, False)
Selection.PivotTable.PivotFields("CAMPO ").Subtotals _
= Array(False, False, False, False, False, False, False, False, False, False, False, False _
)
Selection.PivotTable.PivotFields( _
" CAMPO ").Subtotals = Array(False, False, False, _
False, False, False, False, False, False, False, False, False)
Selection.PivotTable.PivotFields( _
" CAMPO ").Subtotals = Array(False, False, False, False _
, False, False, False, False, False, False, False, False)
Selection.PivotTable.PivotFields( _
" CAMPO ").Subtotals = Array(False, False, False, _
False, False, False, False, False, False, False, False, False)
Selection.PivotTable.PivotFields("CAMPO " _
).Subtotals = Array(False, False, False, False, False, False, False, False, False, False _
, False, False)
Selection.PivotTable.PivotFields("CAMPO "). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
Selection.PivotTable.PivotFields("CAMPO "). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
Selection.PivotTable.PivotFields("CAMPO "). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
Selection.PivotTable.PivotFields("CAMPO "). _
Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
False, False)
Selection.PivotTable.RepeatAllLabels xlRepeatLabels
Cells.Select
Selection.Style = "Comma"
End Sub