Estrazione dati con FILTRO
Hai un problema con Excel? 
Estrazione dati con FILTRO
di cybmatrix data: 17/08/2012 19:38:58
Salve a tutti.
Vorrei porre una questione a cui non riesco a venire a capo riguardo il filtraggio e l'estrazione dati :
//imageshack.us/photo/my-images/23/scadenziario.jpg
Ho uno scadenziario come potete vedere dall'immagine, e vorrei riuscire ad estrapolare selettivamente delle righe che corrispondono ad un dato FILTRO.
In questo caso, poichè ogni cliente è dotato di ID UNIVOCO, vorrei che inserito il filtro in apposito form, venga generato un nuovo foglioscheda ( oppure utilizzato un modello pre-esistente ),
con solo le righe estrapolate ( da tutti i mesi e quindi non solo dalla scheda corrente ) e a fondo pagina la SOMMA di quanto questo cliente deve ancora versare.
Vorrei che tutto questo sia molto "immediato" poichè è una funzione che userei spesso, non so, magari con un pulsante nella barra dei menu oppure con una scorciatoia da tastiera.
Molto semplice teoricamente, ma non conoscendo gli strumenti di estrazione dati nè Macro nè VBA non so come fare :)
Grazie,
CYB.
di Vecchio Frac data: 17/08/2012 23:21:27
Metodi ce ne sono diversi, ognuno ti dirà la sua in base a esperienza e gusti personali, oltre che di uso di Excel unito a tecniche di programmazione :)
Presumo che il file consti di diversi fogli mensili (confermi?), e tu vuoi un foglio di riepilogo ovviamente per i soli saldi in rosso. In ogni foglio mensile potresti cliccare sulla cella del nome del cliente e accedere al foglio di riepilogo annuale, ma anche qui dipende dai gusti: si può avere anche una barra strumenti personalizzata con un pulsante, oppure un link ipertestuale nel foglio, o infine un pulsante al quale associare una macro, o anche niente di tutto questo, perchè potresti semplicemente attivare il foglio di riepilogo per avere i dati filtrati.
Dall'immagine presumo, ma potrebbe anche non essere vero, che l'ID associato al cliente sia nella stessa cella del cliente; suggerirei di dedicargli una cella a sè stante. Il motivo è che poi dovrai effettuare la ricerca in tutti i fogli della cartella di lavoro in base al contenuto di una cella con un contenuto predefinito, senza dover scorporare nome e ID.
Inoltre a seconda dei metodi di ricerca o filtro potrebbe essere d'intralcio la rigona nera vuota tra una data e l'altra all'interno dello stesso foglio; capisco l'estetica, ma potresti optare per un bordo inferiore di spessore applicato all'intera riga.
A grandi linee:
io renderei ogni ID cliente in una cella separata, ogni ID è un collegamento ipertestuale che punta al foglio di riepilogo. A livello di cartella di lavoro viene intercettato l'evento Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range), in questo modo possiamo sapere con esattezza se abbiamo cliccato su una cella contenente un ID.
Quindi possiamo scorrere tutti i fogli mensili, nella colonna dell'ID, per intercettare quello che ci interessa, e copiare l'intera riga nel foglio di riepilogo.
Alla fine possiamo trasferire il controllo per esempio con Sheets("riepilogo").Activate al famoso foglio di riepilogo, che troveremo compilato.
Magari prova ad allegare un modellino completo del tuo file, con dati fittizi, e un fac simile della scheda di riepilogo come tu vorresti fosse. Sarà più semplice metetrci mano e cominciare a lavorarci concretamente. Se alleghi un file, devi comprimerlo in formato ZIP o RAR.
Ecco qui
di CYB (utente non iscritto) data: 27/08/2012 03:22:04
Caro Vecchio Frac, effettivamente non hai tutti i torti ... scorporare il campo ID dal nome cliente renderebbe tutto più accessibile. Solo che per il momento questa operazione mi comporterebbe più complicazioni che vantaggi ... quindi se possibile sarebbe da cercare una soluzione che non implichi questo passaggio.
Per il resto ci hai visto giusto direi.
Intanto ti allego una copia dello scadenziario e come prima scheda quella del riepilogo formattato e pre-compilato : //www.filehosting.org/file/details/369810/SCADENZIARIO_DEMO.xlsx
* L'unica cosa che mi piacerebbe, al di là della singola esecuzione, è la possibilità di eseguire la stessa procedura più volte in maniera consecutiva con accodamento dei dati in maniera ordinata nella parte più alta del foglio, così da creare dei report visivamente separati ( riga nera ), e sotto ogni cliente il riassuntimo del totale dovuto.
E se possibile fare in modo che la procedura ordini i dati più recenti in basso ed i dati dei mesi precedenti in alto. Tutto qui.
Per quanto riguarda la formattazione condizionale non ci sono problemi, ma per i caratteri e tutto il resto, come si può fare per mantere il formato ?
Grazie per la gentile collaborazione.
CYB
di Vecchio Frac data: 27/08/2012 21:15:58
Sto scaricando il modellino.
Penso che domani avrò più tempo per dedicarmi a questa richiesta.
Di passaggio ti osservo solo che se nella colonna A hai i clienti con il loro ID e la formula prevede in modo costante "cognome nome trattino codice" allora è quasi banale scrivere due righe di codice che facciano la separazione tra user e id per schiaffare l'id in colonna dedicata: si scorre ogni cella, se ne ricava il valore, si usa Split(cella, "-") e si valorizza la colonna adiacente con i valori di id così riicavati :)
Eseguire la stessa procedura più volte dipende da te... se vuoi puoi premere più volte un pulsante o una combinazione di tasti, o impostare un ciclo che faccia questo un certo numero di volte.
di Vecchio Frac data: 28/08/2012 13:20:17
Per due volte ho richiesto a filehosting il file (mi dovrebbero mandare un link per scaricarlo) ma non c'è verso.
Non puoi allegare il file qui, compresso ZIP o RAR, che così magari anche altri lo possono vedere, scaricare e provare a trovare una soluzione per te valida?
LINK
di CYB (utente non iscritto) data: 02/09/2012 12:32:52
Ecco fatto.
di Vecchio Frac data: 02/09/2012 13:14:55
Perfetto, grazie, anche se proprio ieri ho riprovato per la terza volta, fornendo però un indirizzo diverso, e stamattina con sorpresa ho trovato il link in posta... dopo che mi si sono aperte sei o sette finestre di spam, sono riuscito a scaricare l'allegato ^_^
E' in .xlsx e ovviamente avrò difficoltà (già il convertitore mi avvisa che le formattazioni condizionali superiori a tre le perderò, come pure le formattazioni che si sovrappongono, ma sicocme dobbiamo studiare un esempio si troverà certamente un'alternativa).
OK !
di CYB (utente non iscritto) data: 02/09/2012 17:12:48
Bene ... :)
di HarryBosch data: 05/09/2012 01:46:51
Ciao Ragazzi
@ Ciao CYB
visto che mi serviva un modellino molto simile, ho preparato qualcosa per te. Come diceva giustamente Vecchio Frac le soluzioni sono molteplici, quindi io ti propongo la mia idea ma non è detto che possa piacerti; tra l'altro mi sembra che non hai espresso una particolare soluzione su come vorresti ottenere il filtraggio dei dati.
All'inizio hai detto che non sei molto ferrato nel vba, per cui non so quanto riuscirai ad adattare il codice alle tue esigenze. Ho cercato quindi di "guidarlo" il più possibile, ma qualche errorino potrebbe esserci.
Quello che ti mando è solo una bozza, magari in questi giorni lo completo, nel senso che mancano numerosi dettagli che inserirò a breve.
Eccone alcuni che mi vengono in mente per migliorare e "stabilizzare" il modellino :
- determinare la somma totale nel foglio "riepilogo"
- se nel foglio "riepilogo" il nome è già stato filtrato non riaccodare i dati dello stesso cliente
- inserire un tasto per la creazione di un nuovo foglio mensile (con la struttura identica ai precedenti)
- in particolare: inserire il nome dei clienti nelle tabelle mensili tramite un elenco a discesa (in modo da evitare inserimenti errati)
Fammi sapere se ti viene in mente qualcosa che vorresti aggiungere...
Il modellino è semplicissimo:
- nel foglio riepilogo clicchi sul pulsante "accoda dati clienti" e scegli il cliente dall'elenco
- per pulire la tabella trovi il pulsante a destra dello stesso foglio
- il codice deve seguire il nome, dopo l'apposito trattino "-", altrimenti non viene preso in considerazione (prova a testare)
- è necessario (ma direi utile) avere un foglio con l'elenco di tutti i clienti: questo elenco è quello che verrà mostrato nella casella di ricerca ("Accoda dati clienti")
Fammi sapere
Ciao, Vanni
di Vecchio Frac data: 05/09/2012 21:09:31
Direi che Vanni ha proposto un modellino molto pulito, essenziale, semplice, da cui CYB può partire efficacemente per costruire qualcosa di fruibile secondo le richieste. Io avevo pensato a qualcosa di più arzigogolato e in fondo meno immediato. Addirittura avevo pensato a trasportare tutto in Access =)
Insomma direi un altro buon lavoro di Vanni (a me dà errori in diversi punti, penso che la conversione verso Excel 2003 non vada sempre a buon fine :) ).
di HarryBosch data: 07/09/2012 23:19:15
Avevo completato il modellino ma CYB non si è fatto più sentire...
Vabbè, vorrà dire che lo tengo qua in caldo per quando torna il nostro amico.
Vuoi Approfondire?