Condividi tramite

Creare una pivot con una macro

Anonimo
2010-12-22T16:07:03+00:00

Ciao, è possibile creare una tabella Pivot tramite una Macro?

La classica registrazione Macro, non sembra funzionare.

Nello specifico, il mio file è così struttutato:

sheet "Casi", contiene i dati da cui partire,

Nello sheet "Pivot" ho bisogno di creare una pivot (Row label colonna F  dello sheet Casi, values colonna A sempre dello sheet Casi)

E' possibile?

Grazie

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

3 risposte

Ordina per: Più utili
  1. Anonimo
    2010-12-23T09:39:30+00:00

    Ciao,

    grazie per il supporto.

     

    Ho provato a far girare il tutto ma mi si bloccadurante la creazione della pivot

     

    Allego la parte di codice

     

        Dim lng As Long

        Dim sh As Worksheet

      

        Application.ScreenUpdating = False

        Set sh = ThisWorkbook.Worksheets.Add

        ActiveSheet.Name = "Pivottone"

        Sheets("Casi").Select

        lng = ThisWorkbook.PivotCaches.Count + 1

      

        With sh

            ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _

                "Casi!R1C1:R65536C12", Version:=xlPivotTableVersion10).CreatePivotTable _

                TableDestination:="Pivottone!R4C2", TableName:="PivotTable" & lng, _

                DefaultVersion:=xlPivotTableVersion10

     

     

    Grazie

    Hai davvero bisogno di 65536 righe? In quale riga hai l'errore, e quale errore? Inoltre, io non so quale sia il tuo contesto. L'esempio basato sul mio funziona. Se vuoi, puoi postare un file qui:http://explore.live.com/windows-live-skydrive?wa=wsignin1.0 . Grazie.


    --

    La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

    --

    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-12-23T09:31:00+00:00

    Ciao,

    grazie per il supporto.

    Ho provato a far girare il tutto ma mi si bloccadurante la creazione della pivot

    Allego la parte di codice

        Dim lng As Long

        Dim sh As Worksheet

        Application.ScreenUpdating = False

        Set sh = ThisWorkbook.Worksheets.Add

        ActiveSheet.Name = "Pivottone"

        Sheets("Casi").Select

        lng = ThisWorkbook.PivotCaches.Count + 1

        With sh

            ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _

                "Casi!R1C1:R65536C12", Version:=xlPivotTableVersion10).CreatePivotTable _

                TableDestination:="Pivottone!R4C2", TableName:="PivotTable" & lng, _

                DefaultVersion:=xlPivotTableVersion10

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-12-22T17:53:05+00:00

    Ciao, è possibile creare una tabella Pivot tramite una Macro?

    La classica registrazione Macro, non sembra funzionare.

    Nello specifico, il mio file è così struttutato:

    sheet "Casi", contiene i dati da cui partire,

    Nello sheet "Pivot" ho bisogno di creare una pivot (Row label colonna F  dello sheet Casi, values colonna A sempre dello sheet Casi)

    E' possibile?

    Grazie

    Per favore, definisci: non sembra funzionare. Grazie. Perchè se io registro una macro mentre creo una tabella pivot, il codice lo vedo. Questo codice, crea ogni volta una tabella pivot partendo dai dati del Foglio1:

    Public Sub m()

        Dim lng As Long

        Dim sh As Worksheet

        Application.ScreenUpdating = False

        Set sh = ThisWorkbook.Worksheets.Add

        lng = ThisWorkbook.PivotCaches.Count + 1

        With sh

            ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _

                "Foglio1!R1C1:R16C3", Version:=xlPivotTableVersion10).CreatePivotTable _

                TableDestination:=.Name & "!R3C1", TableName:="Tabella_pivot" & lng, _

                DefaultVersion:=xlPivotTableVersion10

            .Cells(3, 1).Select

            With .PivotTables("Tabella_pivot" & lng).PivotFields("datoa")

                .Orientation = xlRowField

                .Position = 1

            End With

            With .PivotTables("Tabella_pivot" & lng).PivotFields("datob")

                .Orientation = xlColumnField

                .Position = 1

            End With

            .PivotTables("Tabella_pivot" & lng).AddDataField ActiveSheet.PivotTables( _

                "Tabella_pivot" & lng).PivotFields("datoc"), "Somma di datoc", xlSum

        End With

        Application.ScreenUpdating = True

        Set sh = Nothing

    End Sub

    L'importante è che non ci siano altre tabelle pivot con lo stesso nome e lo stesso dicasi per i fogli sui quali vai a disporre la pivot. Ovviamente questo è un esempio. Adattalo alle tue esegenze. Grazie per l'attenzione.


    --

    La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.

    --

    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento