Uso Filtro dati avanzato



  • Uso Filtro dati avanzato
    di alfrimpa (utente non iscritto) data: 15/02/2015 19:46:31

    Ciao a tutti

    Avrei da fare un paio di domande sull'utilizzo del filtro avanzato

    1) supponendo di avere un database composto da dieci campi e volendo fare un'estrazione di dati soltanto per due di questi (ad es. il terzo ed il quinto) come si deve fare? Senza e con codice VBA?

    2) avendo il database in foglio1 e volendo effettuare un'estrazione dati sul foglio2 come occorre procedere?

    Grazie

    Alfredo





  • di Vecchio Frac data: 15/02/2015 20:10:50

    Premessa: con "senza e con codice VBA" intendi che vorresti raggiungere il risultato sia manualmente che con codice? O le due scelte sono in alternativa tra loro?

    1) Ma intendi un filtro multicriterio? cioè applicare un filtro simultaneo a più colonne? oppure, applicato un filtro, recuperare solo i valori di due colonne tra le dieci filtrate ?
    2) Hai provato? con che risultati?





  • di alfrimpa (utente non iscritto) data: 15/02/2015 20:55:41

    Ciao Vecchio Frac e grazie della risposta.

    Avevo chiesto "senza e con VBA" solo per completezza ma sapendolo fare manualmente penso che non ci sarebbero eccessive difficoltà a tradurre il tutto in VBA.

    1) la seconda che hai detto.

    2) per quel che ne so il filtro avanzato è utilizzabile solo sul foglio attivo; se è così è veramente una grossa pecca di Excel. C'è modo (o qualche artificio) per "aggirare" questa limitazione. Se dovessi impostare del codice farei così:

    A) selezionerei il foglio contenente il database;
    B) effettuerei l'estrazione dati sul foglio attivo
    C) selezionerei e copierei su altro foglio i dati estratti
    D) attiverei il foglio con i dati estratti

    ma mi sembra un procedimento un po' contorto; c'è la possibilità di fare meglio ed in maniera più "elegante"

    Grazie

    Alfredo






  • di Vecchio Frac data: 15/02/2015 21:01:10

    Mentre tu scrivevi la risposta io facevo qualche prova e quindi leggo solo ora il tuo intervento, a cosa fatte :)
    Pazienza, ti allego lo stesso il mio file di prova.
    Vediamo se si avvicina a quello che vuoi fare.

    Oltre a creare manualmente i passaggi col filtro avanzato, che naturalmente sai fare benissimo, ho constatato che Excel non supporta la copia su altro foglio. Così ho scritto due righe di codice.
    Il codice di esempio funziona da subito e lo puoi provare in finestra immediata, ricopiando la prima riga che ho messo ("esempio di utilizzo"). In pratica la sub accetta tre parametri, il range di dati (compresa intestazione), una stringa col criterio in cui scrivi il nome del campo da verificare = a un valore(es. "e=6" filtra le righe in cui nella colonna la cui etichetta è "e" compaia il valore 6); e infine un range di destinazione, ad es. sheets(2).range("a1").
    Insomma vedi se puoi ricavare qualche idea :)
    Allego file "cartel1_vfrac .xlsm"





  • di Vecchio Frac data: 15/02/2015 21:03:28

    p.s. rileggendo meglio il tuo post, confrontando con il mio file, vedrai che è *esattamente* quel che ho fatto io. Non credo si possa fare diversamente. Ancora una volta abbiamo ragionato in modo simile :)





  • di alfrimpa (utente non iscritto) data: 15/02/2015 21:13:04

    Ciao V.F. e grazie ancora per la tua tempestività pure di domenica oltretutto.

    Dal tuo file vedo (sono con l'iPad quindi non ho Excel sottomano) che hai estratto i dati da tutti i dieci campi; se invece si volesse limitare l'estrazione ad un numero di campi inferiore come si dovrebbe fare?

    Per quanto riguarda il secondo problema quindi è confermata l'impossibilità.

    Domani guarderò il tuo codice che sicuramente sarà perfetto.

    Una domanda a latere: conosci Microsoft Query? (Sul forum non ho mai visto che se ne sia parlato) Cosa ne pensi? È utilizzabile solo con tabelle esterne o anche con database presenti nella cartella di lavoro attiva? Se così fosse si potrebbe costruire una query ed eseguirla dove si vuole; sto sbagliando?

    Grazie ancora.

    Alfredo





  • di alfrimpa (utente non iscritto) data: 15/02/2015 21:16:23

    Cit. "Ancora una volta abbiamo ragionato in modo simile :)"

    E questa è una dimostrazione della intelligenza umana: quando due persone in luoghi diversi ed in tempi diversi giungono alle medesime conclusioni

    Alfredo



  • di isy data: 15/02/2015 21:16:59

    Cit: 2) per quel che ne so il filtro avanzato è utilizzabile solo sul foglio attivo; se è così è veramente una grossa pecca di Excel.

    Non è proprio così, con il registratore è possibile farlo su un solo foglio.
    Con il codice ottenuto è sufficente aggiungere i riferimenti ai fogli interessati



  • di Vecchio Frac data: 15/02/2015 21:25:25

    @isy
    Ciao, io ho provato solo con il wizard di Excel, e non col registratore di macro.
    Nice if si potesse :)