Condividi:        

macro per aggiornare pivot

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

macro per aggiornare pivot

Postdi mary73 » 23/04/15 11:12

Buongiorno
sono nuova, appena iscritta e veramente ignorante in materia Macro, per cui avrei bisogno di istruzioni a prova di scimmia (IO) che mi aiutino a costruire una macro che possa aggiornare automaticamente una pivot prendendo andando a cercare in una directory specifica il file txt che rappresenta il database.
Mi spiego meglio, ogni mattina elaboro da un applicativo ed estraggo in una directory specifica un file txt, vorrei che venisse pescato questo file e sostituito nella pivot in modo tale che aggiorni con il dato fresco, salvi il file excel.

Spero di essere stata chiara :oops: nella richiesta e che qualcuno mi possa aiutare in tale operazione.
Saluti
Mary
mary73
Newbie
 
Post: 2
Iscritto il: 23/04/15 10:59

Sponsor
 

Re: macro per aggiornare pivot

Postdi Anthony47 » 23/04/15 13:17

Ciao mary73, benvenuta nel forum.
Allora facciamo cosi':
1) Parti dal tuo file che contiene il dato corrente e su cui hai impostato una tabella pivot, dal foglio con la tabella pivot.
2) A questo punto avvia la registrazione di una nuova macro (le modalita' dipendono dalla versione di XL in uso) ed esegui diligentemente le seguenti operazioni:
-selezioni il foglio con i dati di partenza
-avvii ed esegui l' importazione di uno qualsiasi dei file txt ora presenti sul tuo pc
-vai sul foglio con la pivot, tasto dx, scegli Aggiorna
-interrompi la registrazione macro
A questo punto pubblica il codice ottenuto e cercheremo di renderlo generico, in modo da consentire automaticamente la scelta del file, l' importazione e l' aggiornamento pivot.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per aggiornare pivot

Postdi mary73 » 27/04/15 15:24

Ciao ho eseguito esattamente quello che mi hai suggerito e questo è il codice che trovo:
Prova Macro
'

'
Sheets("Foglio2").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\edipi9o\BET 001 € Best Estimate and Budget Analysis (Production Cost).txt" _
, Destination:=Range("$A$1"))
.Name = "BET 001 € Best Estimate and Budget Analysis (Production Cost)"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 _
, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Sheets("PIVOT").Select
ActiveSheet.PivotTables("Tabella_pivot1").ChangePivotCache ActiveWorkbook. _
PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"C:\ALFRESCO\NUOVA BET\2015\Aprile\Versione 2\[BET 001 Aprile 2015 (Weekly Versione 2) Total Group.xlsx]Foglio2!R5C1:R11120C77" _
, Version:=xlPivotTableVersion12)
End Sub
mary73
Newbie
 
Post: 2
Iscritto il: 23/04/15 10:59

Re: macro per aggiornare pivot

Postdi Anthony47 » 28/04/15 01:29

Mi e' difficile collaudare, ma penso che questa macro potrebbe aiutarti:
Codice: Seleziona tutto
Sub impivot()
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=104531
Dim FullNome
'
'Chiedi il file da gestire:
With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = False
    .Filters.Clear
    .InitialFileName = "C:\Users\edipi9o"
    .Filters.Add "Text", "*.txt", 1   '<<< Filtro per estensione
    .Show
    If .SelectedItems.Count = 0 Then
         MsgBox ("Nessuna voce selezionata, procedura annullata")
         Exit Sub
    End If
    FullNome = .SelectedItems(1)     'Directory e Nome del file selezionato
End With

Sheets("Foglio2").Select
With Range("A1").QueryTable
    .Connection = "TEXT;" & FullNome
    .Refresh BackgroundQuery:=False
End With
Sheets("Pivot").PivotTables("Tabella_pivot1").PivotCache.Refresh
End Sub
Lanciandola dovresti poter scegliere quale file txt importare, importarlo, aggiornare la tabella pivot.

Presume che il tuo file contenga gia' una query per importare il txt su Foglio2 e una tabella pivot che come sorgente abbia le intere colonne contenente dati.
Su quest'ultimo aspetto, la macro registrata mi lascia un po' perplesso; sembra che sia piu' la fase di creazione della pivot che di refresh...

Prova e fai sapere....

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19228
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "macro per aggiornare pivot":


Chi c’è in linea

Visitano il forum: Nessuno e 66 ospiti