Excel Forum Per condividere esperienze su Microsoft Excel

una macro per filtrare, con valori presi da celle

  • Messaggi
  • OFFLINE
    Piergiacomo Jimmy Fontana
    Post: 1
    Registrato il: 20/10/2016
    Utente Junior
    2016
    00 20/10/2016 18:40
    Buonasera, necessito di un aiuto con una macro.
    Ho un database di 150.000 righe e 10 colonne.
    Devo compilare una semplice macro che filtra la visione del database secondo dei valori presi da celle.

    Database compreso in $A$1:$J$150000
    devo filtrare il database secondo le seguenti indicazioni:
    - colonna G compresa tra valore di $M$1 e valore di $N$1
    AND
    - colonna H compresa tra valore di $M$2 e valore di $N$2
    AND
    - colonna I uguale al valore di $M$3

    una volta immessi i valori di filtro nelle caselle $M$1, $N$1, $M$2, $N$2, $M$3, premo il pulsante della macro che mi filtra in automatico il database (senza fare manualmente i filtri ogni volta).

    Qualcuno che mi aiuti nella compilazione della macro?? non credo sia troppo difficile ma a smanettare con i codici non saprei da dove partire....ho provato a registrare una macro ma non ho ottenuto nulla di ciò che vorrei
    Grazie infinite
  • OFFLINE
    Piergiacomo Jimmy Fontana
    Post: 1
    Registrato il: 20/10/2016
    Utente Junior
    2016
    00 20/10/2016 20:30
    tentativo
    ho provato ad inserire questo codice nella macro. vedo che mi inserisce i valori delle celle M1 ed N1 nei campi di range del filtro, ma mi filtra l'intero database a 0 righe (come se nessuna riga fosse compresa tra i due valori, cosa che non è vero). dove ho sbagliato??

    Sub filtro1()
    Dim crit1 As String
    Dim crit2 As String
    crit1 = ">" & Range("M1")
    crit2 = "<" & Range("N1")
    ActiveSheet.Range("$A$1:$J$150000").AutoFilter Field:=8, Criteria1:=crit2, Operator:=xlAnd, Criteria2:=crit1
    End Sub
  • OFFLINE
    by sal
    Post: 4.948
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 21/10/2016 08:18
    Filtro dati
    Ciao Piergiacomo, oltre le macro che senza un esempio anche con dati fasulli e poche righe, non possiamo darti.

    Ci sono altri metodi, il più semplice trasformare il database in "Tabella", l'altro che vista la grossa mole di dati msarebbe più indicato una Tabella Pivot.

    ma torniamo al punto di partenza per l'esempio di come sono i dati è come vorresti che fossero filtrati.

    Ciao By Sal [SM=x423051]

    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    Piergiacomo Jimmy Fontana
    Post: 2
    Registrato il: 20/10/2016
    Utente Junior
    2016
    00 21/10/2016 11:55
    Grazie Sal per la risposta. Ti invio un file ridotto di quello che intendo, con la macro FILTRA che ho provato a scrivere

    https://www.dropbox.com/s/etq02kme38n3ln8/FILTRA%20x%20forum.xlsm?dl=0

    il problema è che:
    - i filtri per numeri "uguale a..." mi funzionano (vedi colonna gialla del file)
    - i filtri per testo "uguale a..." mi funzionano (vedi colonna arancione del file)
    - invece i filtri per numeri "maggiore di..." AND "minore di..." NON MI FUNZIONANO (vedi colonne azzurra e verde del file), mi ritornano colonne vuole come se non esistesse il range (cosa che invece esiste eccome!)

    che poi non capisco una cosa: perchè in tutte e 4 le colonne colorate filtrate mi compare sempre la scritta "filtro testo" una volta filtrate, quando solo 1 su 4 è un filtro testo e le altre 3 sono filtri numeri?
    Non è che il problema sia un'incongruenza di numero/testo dei dati delle colonne della tabella??
    boh....mi sto scervellando da 3 giorni su questa cosa che mi blocca l'intero lavoro....
    [Modificato da Piergiacomo Jimmy Fontana 21/10/2016 11:56]
  • OFFLINE
    patel45
    Post: 3.419
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 21/10/2016 13:15
    questo è crossposting   vedi http://www.excelvba.it/Forum/thread.php?f=1&t=11178

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • ONLINE
    alfrimpa
    Post: 2.347
    Registrato il: 21/06/2013
    Città: NAPOLI
    Età: 70
    Utente Veteran
    Excel 365
    00 21/10/2016 13:35
    E non solo anche qui

    http://www.pc-facile.com/forum/viewtopic.php?f=26&t=107670

    Alfredo
  • OFFLINE
    Piergiacomo Jimmy Fontana
    Post: 3
    Registrato il: 20/10/2016
    Utente Junior
    2016
    00 21/10/2016 14:14
    RISOLTO: Il vba vuole il punto come separatore decimale, non la virgola, quindi tutti i range di filtro "da...a..." devono essere segnati con punto.


    per quanto riguarda il crossposting....ragazzi, avevo bisogno di una risposta veloce ad un problema che mi ha tenuto bloccato per giorni. in questo modo l'ho ottenuta e per giunta ho condiviso la soluzione con tutti.

    peace&love