Criteri filtro da textbox

Anonimo
2009-09-17T11:19:33+00:00

Innanzitutto un saltuto a tutta la comunità e complimenti per il nuovo forum.

Cortesemente un aiuto con VB che mi sto impiccando :-(( ...

Dovrei applicare una serie di filtri al Foglio1 in base a scelte fatte in textbox e il risultato copiarlo al Foglio2.

Mi spego ho una userform con 4 textbox

TextBox1 = "Cognome e Nome"  colonna B

TextBox2 = "Città"  colonna C

TextBox3 = "Provincia"  colonna D

TextBox4 = "Data di nascita" colonna E

Se ad esempio metto

TextBox1 = "Pinco Pallino"

TextBox2 = "Albano Laziale"

TextBox3 = "Roma"

TextBox4 = "01/01/1900"

le scelte delle 4 text diventano i criteri di ricerca dei filtri nelle relative colonne.

Volevo inoltre fare in modo che mi prendesse in considerazione solo i criteri scelti, in modo che possa ad esempio fare ricerca solo per nome, o solo per città o ambedue; ecc...

Ho provato con qualcosa del genere, ma non funge :-((

Private Sub CommandButton1_Click()

    ActiveSheet.Range("$B$1:$E$3000").AutoFilter Field:=1, Criteria1:=TextBox1.Value

    ActiveSheet.Range("$B$1:$E$3000").AutoFilter Field:=2, Criteria1:=TextBox2.Value

    ActiveSheet.Range("$B$1:$E$3000").AutoFilter Field:=3, Criteria1:=TextBox3.Value

    ActiveSheet.Range("$B$1:$E$3000").AutoFilter Field:=4, Criteria1:=TextBox4.Value

    Range("A1:E3001").Select

    Selection.Copy

    Sheets("Foglio2").Select

    Range("A1").Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False

    Sheets("Foglio1").Select

    Application.CutCopyMode = False

    ActiveSheet.ShowAllData

    Range("A2").Select

    Sheets("Foglio1").Select

    Range("A2").Select

    Unload Me

End Sub

Ovviamente avrete capito che sono una schiappa in VB, e mi arrangio con registratore ...

Ringrazio anticipatamente a chiunque possa aiutarmi e auguro una buona giornata a tutti.

Ciao

Antonio

Microsoft 365 e Office | Installare, riscattare, attivare | Per la casa | Altro

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2009-09-17T14:06:48+00:00

Antonio, ho preparato un semplice foglio di esempio che puoi scaricare da qui:

http://www2.msoutlook.it/files/FiltroConCopia.xls

che contiene un foglio di partenza con l'elenco dei dati completo, una zona nella quale inserire il dati del filtro, ed un pulsante associato ad una macro.

La macro non fa altro che creare un nuovo foglio di lavoro e lanciare il filtro automatico facendo una copia dei dati (ed ovviamente basandosi sulla tabella con i valori di filtro).

Prova a darci un'occhiata...

Se non fosse necessario creare un nuovo foglio tutto il codice necessario si limiterebbe ad una sola riga, quella in cui viene invocato il filtro avanzato.

Ciao

Roberto

La risposta è stata utile?

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2009-09-17T13:26:59+00:00

Ciao Antonio.

Visto che l'obiettivo è quello di generare une esportazione di dati in altro foglio io utilizzerei le funzionalità del Filtro Avanzato di Excel che permette in maniera nativa ti estrarre una copia dei dati che soddisfano certi requisiti. Il filtro avanzato richiede che sia definita una zona del foglio adibita a raccogliere i dati di filtro (anzichè le textbox usi normali celle del foglio, ovviamente predisposte e strutturate in maniera opportuna).

Questa soluzione oltre ad essere più veloce in termini di esecuzione è anche più semplice da manutenere e realizzare. Prova a dare un'occhiata all'help in linea per quanto riguarda il filtro avanzato, così prendi confidenza con lo strumento.

Ciao

Roberto

La risposta è stata utile?

0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Eliminata

    Questa risposta è stata eliminata a causa di una violazione del codice di comportamento. La risposta è stata segnalata manualmente o identificata tramite il rilevamento automatizzato prima dell'esecuzione dell'azione. Per ulteriori informazioni, fai riferimento al codice di comportamento.


    I commenti sono stati disattivati. Ulteriori informazioni