filtro di una tabella che si aggiorna tramite un riferimento cella

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
grano.b
00venerdì 13 maggio 2016 13:43
Salve a tutti

vi disturbo per un problema forse non troppo complicato:

ho una tabella (tab) con 6 colonne per registrare delle fatture:

codice - intestazione - indirizzo - imponibile - iva - tot


quando inserisco un nuovo rigo scrivo l'intestazione e si crea la nuova riga della tabella con già la formula del campo iva e tot.

io ho bisogno che appena scrivo l'intestazione ad esempio rossi venga filtrato intestazione = rossi in modo da avere lo storico di rossi, per fare questo in una cella(L2) ho inserito la seguente formula: =INDICE(tab[Intestazione];RIGHE(tab[Intestazione])) e mi da come risultato l'ultima intestazione inserita

come faccio a filtrare con riferimento a questa cella(L2)?
e far si che ogni volta che il valore della cella cambia si aggiorni anche il filtro?

cromagno
00venerdì 13 maggio 2016 14:13
Ciao,
allega un file d'esempio (senza dati sensibili) per capire meglio come hai strutturato il foglio e cosa vorresti ottenere.

Ti si potrebbe dare subito una soluzione con un codice VBA e con dei riferimenti "inventati" ma se non poi non riuscissi ad adattarlo al tuo file ti verrebbe comunque chiesto di allegare il file per capire meglio.
grano.b
00venerdì 13 maggio 2016 14:33
ho caricato il file:

io vorrei che una volta inserito "sembronio" in B7, oltre a crearmi la riga della tabella mi filtrasse anche tutti i sembronio senza andare ad impostare il filtro manualmente ogni volta
grano.b
00venerdì 13 maggio 2016 14:47
se inserisco un filtro avanzato mettendo in "intervallo criteri" le celle L1:L2 ottengo il risultato desiderato solo che quando vado ad inserire un nuovo record per es. rossi, la cella L2 si aggiorna però la tabella rimane filtrata sul valore precedente
cromagno
00venerdì 13 maggio 2016 14:58
Questo è un possibile codice (da mettere in un modulo standard):

Sub Filtra()
Dim Filtro As String

Filtro = ActiveCell.Value
With ActiveSheet.ListObjects("tab")
    .AutoFilter.ShowAllData
    .Range.AutoFilter Field:=2, Criteria1:=Filtro
End With
End Sub


Mentre questo da mettere nel modulo di classe del foglio per richiamare il codice precedente:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim uRiga As Long, Campo As Range

uRiga = Range("B1").End(xlDown).Row + 1
Set Campo = Range("B1:B" & uRiga)
If Not Intersect(Target, Campo) Is Nothing Then
    Cells(Target.Row, Target.Column).Select
    Call Filtra
End If
Set Campo = Nothing
End Sub


Ti riallego il file...
grano.b
00venerdì 13 maggio 2016 15:35
mi da un errore evidenziandomi la riga 6 del primo codice che mi hai postato,(.AutoFilter.ShowAllData)

cmq uso excel 2010 (non riesco a cambiare nella firma)
grano.b
00venerdì 13 maggio 2016 16:17
OK RISOLTO

Dovevo solo visualizzare i filtri, adesso il tuo codice funziona perfettamente era quello che cercavo. [SM=x423028]

Grazie mille
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 00:19.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com