Aiutamici Forum
Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

[Excel 2007]- Operazioni di Filtro, Copia da tabella Pivot a tabella preformattata Opzioni
aetio
Inviato: Tuesday, December 07, 2010 2:50:45 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
ormai ridotto ad un tabelle-dipendente [:)))], sono alle prese con un'operazione assai barbosa di smanettamento con sequenze operative pressoché identiche per compilare, in un foglio di lavoro, un elenco di valori/codici relativi ad una Tabella Pivot. In dettaglio:
Partendo dalle ormai famose tabelle Pivot del foglio TabPivot



devo filtrare i dati delle colonne da col.E a col.Q e da col.X a col.AJ in modo che rispondano a questo quesito:
"Filtrando di colonna in colonna il valore 11 quali sono i rispettivi codici di col. B e di col.D?"
dove, mantenendo costante il valore 11, di volta in volta la colonna cambia, ovvero prima col.E e poi a seguire, sequenzialmente, le colonne fino alla Q e dalla col.X fino alla AJ
Nota bene: le col.C e V sono nascoste, ed i relativi codici sono incolonnati per esigenze di filtro nelle col. B e U
Ecco una foto ad esempio (riferita al filtro del valore 11 in col.L, ove si leggono i relativi codici delle righe di competenza nelle col.B e D)



I codici che interessano la mia ricerca sono, in base al valore assunto a filtro, quelli delle colonne B e D per quanto riguarda la tabella di sin. e quelli delle colonne U e W per la tabella di des.
Questi codici debbo riportarli, mediante copia/incolla, in un foglio appositamente formattato in modo da accoglierli così come sono incolonnati in foglio TabPivot. Ecco una foto ad esempio:



ove nelle colonne A e B - D e E - G e H - J e K - M e N - P e Q - S e T - V e W etc. sono incolonnati i codici copiati dalla pagina TabPivot (rispettivamente dalle colonne B e D con filtro in col.E, B e D con filtro in col.F, B e D con filtro in col.G, B e D con filtro in col.H, B e D con filtro in col.I, B e D con filtro in col.J, B e D con filtro in col.K, B e D con filtro in col.L etc.)

In altre parole, ecco quali operazioni ripeto in modo meccanico, partendo dalla 1^ colonna della tabella Pivot di sin.-la E- fino all'ultima- la Q- e dalla 1^ colonna della tabella Pivot di des. -la X- fino all'ultima- la AJ (nell'esempio applico il filtro 11 nella colonna L- vedi foto 2 ):
- filtro nella colonna L, imposto il valore (11 nel nostro caso)
> la tabella viene filtrata
- selezione dell'area interessata, nelle colonne B e D (B211:D864... ATTENZIONE: sono righe filtrate)
- Copia
- Selezione del folgio del RIEPILOGO (il foglio in cui incollerò i dati che m'interessano, qui nome del foglio dato ad esempio)
- Selezione della cella in cui incollare i dati, nel nostro esempio V2
- Incolla speciale/ Valori > OK

Dato che queste operazioni sono ripetitive da inizio a fine tabella Pivot, sono praticamente sempre le stesse, è possibile tradurle in istruzioni in una macro che come unica richiesta- magari con una MsgBox- necessiti del valore da filtrare? (nel nostro esempio 11)

Sono estremaente consapevole che qui la materia si fa davvero difficile, ma come ho già fatto ben capire nell'altro Topic... qui mi trovo proiettato in un'altra galassia... :)
Grazie infinite, saluti
eZio

Nota: nella foto 2 > i codici di col.D indicati come 44, 78, 39 sono in realtà 144, 178,139 (è stato un mio refuso)
Sponsor
Inviato: Tuesday, December 07, 2010 2:50:45 PM

 
a10n11
Inviato: Tuesday, December 07, 2010 7:43:48 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
quello che chiedi, se ho capito bene non è complesso. Diventa complesso tenere a mente tutta la logica che ci ha portato fino a qua. Fatti delle belle copie di sicurezza perchè ricostruire tutti i passaggi diventerebbe tragico.

Tornando all'ultima richiesta, bisogna premettere che dalle tabelle pivot va nascosto il campo di totale ad ogni cambio di numero altrimenti ti verrà falsato il lavoro.

La macro è impostata sulle Tabelle pirvot generate dal confronto della colonna 34 con la tabella 2 e copia le coppie dei risultati filtrati in un fantomatico Foglio3 da riga 3 in giù (cambia secondo tue necessità)

questa è la macro:

Code:

Sub Copia_Filtrati()
Ur = Range("D" & Rows.Count).End(xlUp).Row
criterio = InputBox("Criterio Filtro")
col = 2
Colfin = 17
Riga = 1
colfil = 1
For n = 1 To 2
Range(Cells(Riga, col), Cells(Ur, Colfin)).Select
        Selection.AutoFilter
           For i = 4 To 16
    Selection.AutoFilter Field:=i, Criteria1:=criterio
    Range(Cells(7, col), Cells(7, col + 2).End(xlDown)).SpecialCells(xlCellTypeVisible).Copy _
    Destination:=Sheets("Foglio3").Cells(3, colfil)
         Selection.AutoFilter Field:=i
         colfil = colfil + 3
    Next
     Ur = Range("U" & Rows.Count).End(xlUp).Row
    col = 19
    Colfin = 34
    Next
End Sub


saluti
Giap

aetio
Inviato: Tuesday, December 07, 2010 9:45:57 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
Commenta:
Diventa complesso tenere a mente tutta la logica che ci ha portato fino a qua. Fatti delle belle copie di sicurezza perchè ricostruire tutti i passaggi diventerebbe tragico.


Sono mesi che salvo tutto per filo e per segno :)) Ignorante si, fesso no ahahahahahahahah
(e quando mai uno, appassionato della Materia, può aspirare di avere cotanta immensa fortuna??)
Grazie infinite, corro subito a provare la macro... saluti
eZio


EDIT:
macro provata con i dovuti cambiamenti. Funziona perfettamente!! Come al solito uno strike micidiale...
Domanda: ho notato che salvando il file dopo le elaborazioni della macro, esso si gonfia a dismisura... bisogna forse dare un'istruzione a fine macro per liberare la memoria (es. Set area = Nothing)?

E' sorprendente come in poche righe di istruzioni (per contro, dalla sintassi assai complessa!) riesci a far fare in un baleno il lavoro- se svolto in manuale- di circa 1 ora !!
Rimango comunque sempre più meravigliato dalla miriade di applicazioni, nel mio caso strettamente pratiche, in cui è possibile utilizzare questo meraviglioso programma...
Un universo che ruota tutt'intorno a delle semplici, sia pure barbose, tabelle di dati... :))


Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.