Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Filtri in base al contenuto di una cella

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Filtri in base al contenuto di una cella

Postdi Ubuntus » 15/01/16 14:29

ciao

Se ho un filtro, potrei modificare dinamicamente il filtro con la condizione " inizia con" e quel inizia con si trova in una cella

cioe ho una tabella da riga A2x G100, se scrivo qualcosa in A1 vorrei che mi modifichi il filtro sulla colonna B

grazie
Ubuntus
Utente Junior
 
Post: 73
Iscritto il: 24/07/15 15:56

Sponsor
 

Re: Filtri in base al contenuto di una cella

Postdi alfrimpa » 15/01/16 15:48

Ciao Ubuntus

Puoi farlo con una macro di questo tipo ovviamente da adattare.

Codice: Seleziona tutto
Sub Macro1()
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$A$7").AutoFilter Field:=1, Criteria1:=Range("a20").Value & "*", _
        Operator:=xlAnd
End Sub
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 840
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Filtri in base al contenuto di una cella

Postdi wallace&gromit » 15/01/16 16:00

ciao,
metti questa macro nel codice del foglio:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
CheckArea = "A1"
If Not Application.Intersect(Target, Range(CheckArea)) Is Nothing Then
Me.Range("A2").AutoFilter Field:=2, Criteria1:=Range("A1") & "*", Operator:=xlAnd
End If
End Sub

Si aggiorna solo alla pressione di invio dopo avere inserito il testo in A1 (sarebbe bello fare che si aggiorni automaticamente durante l'immissione del testo ma non ci sono ancora arrivato!)

P.S. mi sono sovrapposto ad Alfrimpa, vedi cosa scrive e confronta le soluzioni
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1420
Iscritto il: 16/01/12 14:21

Re: Filtri in base al contenuto di una cella

Postdi wallace&gromit » 15/01/16 16:28

apparentemente non è possibile aggiornare durante la digitazione di un testo in una cella.
Ma in rete ho trovato una macro che si basa su una textbox, che può essere posta sopra alla cella A1.
Fa ancora di più di quanto richiesto, in quanto trova la sequenza anche interna alla parola (cioè se inserisci "pip" trova "pippo" ma anche "superpippo").
Se questo ti dovesse disturbare togli semplicemente il primo asterisco nell'istruzione searchString

Codice: Seleziona tutto
Private Sub TextBox1_Change()
 Dim searchArea As Range, searchRow As Range, searchCell As Range
 Dim searchString As String
 Dim lastRow As Integer

 Application.ScreenUpdating = False
 searchString = "*" & LCase(TextBox1.Value) & "*"

 ' unhide rows to have the full search field when editing
 Rows.Hidden = False

 lastRow = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
 Set searchArea = Me.Range("B3", "B" & lastRow)
 searchArea.EntireRow.Hidden = True

 For Each searchRow In searchArea.Rows
   For Each searchCell In searchRow.Cells
     If LCase(searchCell) Like searchString Then
       searchRow.Hidden = False
       Exit For
     End If
   Next searchCell
 Next searchRow

 Application.Goto Cells(1), True
 Application.ScreenUpdating = True

End Sub
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1420
Iscritto il: 16/01/12 14:21


Torna a Applicazioni Office Windows


Topic correlati a "Filtri in base al contenuto di una cella":


Chi c’è in linea

Visitano il forum: Nessuno e 10 ospiti