aggiornamento filtro pivot variabile



  • aggiornamento filtro pivot "variabile"
    di simone (utente non iscritto) data: 19/05/2017 17:16:26

    buongiorno!

    Ho scritto una macro che tramite una userform dove viene richiesto di digitare una data in formato gg/mm/aaaa estrapola separatamente il giorno, il mese e l'anno assegnandoli a delle variabili "giorno", "mese", "anno".

    a partire da queste informazioni importa delle tabelle denominate *nomedelfile*giorno/mese/anno

    vengono create delle pivot, che dovrei aggiornare alla data che mi interessa, ma scrivendo

    Worksheets("Pivot").PivotTables("pivot1").PivotFields("DataEsito").CurrentPage = mese / giorno / anno

    mi viene restituito errore. ho provato ad inserire i valori seguenti ma senza successo..
    potresti aiutarmi?

    p.s ho utilizzato il metodo PivotTableWizard per creare le pivot, non il metodo PivotCache
     
    Worksheets("Pivot").PivotTables("pivot1").PivotFields("DataEsito").CurrentPage = mese / giorno / anno
    Worksheets("Pivot").PivotTables("pivot1").PivotFields("DataEsito").CurrentPage = "mese" & "/" & giorno & "/" & anno
    Worksheets("Pivot").PivotTables("pivot1").PivotFields("DataEsito").CurrentPage = mese& "/" & giorno & "/" anno



  • di Vecchio Frac data: 20/05/2017 19:23:20

    Lo slash serve per la divisione: "....CurrentPage = mese / giorno / anno " scritto proprio così significa dividere il contenuto della variabile mese per il contenuto della variabile giorno per il contenuto della variabile anno, il che non è quello che vuoi.

    Mentre in "....CurrentPage = "mese" & "/" & giorno & "/" & anno" hai concatenato la stringa "mese/" con il contenuto della variabile giorno, hai aggiunto il carattere slash e hai aggiunto il valore attuale di "anno".

    La terza scritta forse è quella che si avvicina al tuo proposito ma così scrivendo fallisci perchè probabilmente ottieni errore di sintassi; mese& scritto così indica una variabile di tipo Long, e manca poi l'operatore che dice al compilatore cosa fare con la stringa successiva.

    Non mi va di brancolare nel buio facendo false ipotesi... allega un file di esempio (non ho tempo di costruirmene uno): magari basta un semplice CDate() o un Format().

    cit. "mi viene restituito errore"
    --> generalmente è utile riportare l'errore sollevato (non in questo caso ma di solito è utile per circostanziare l'evento e trovare una soluzione)