non tanto tempo fa mi hai creato questa macro da inserire nel foglio, che sfruttando 2 criteri immessi in 2 differenti celle restringe i risultati accelerando la ricerca del dato utile.
L'ho inserita all'interno di un'altra macro e ho aggiunto qualche piccolissima modifica. Ri-posto solo il pezzetto per farti capire di cosa sto parlando
- Codice: Seleziona tutto
ActiveSheet.ListObjects("Tabella2133").Range.AutoFilter Field:=18
If Target.Address = "$F$3" Then
Range("F5,D9").ClearContents
If Target.Value <> "" Then
ActiveSheet.ListObjects("Tabella2133").Range.AutoFilter Field:=4, Criteria1 _
:=Target.Value
Else
ActiveSheet.ListObjects("Tabella2133").Range.AutoFilter Field:=4
End If
ElseIf Target.Address = "$F$5" Then
If Target.Value <> "" Then
ActiveSheet.ListObjects("Tabella2133").Range.AutoFilter Field:=7, Criteria1 _
:=Target.Value
Else
ActiveSheet.ListObjects("Tabella2133").Range.AutoFilter Field:=7
End If
End If
Nel Foglio dove l'ho inserita funziona perfettamente perchè il primo criterio (in F3) trova il Nome del Cliente che mi serve filtrando colonna 4 e il secondo Valore (in F5) restringe ancora di più il risultato, legando il Nome Cliente al Numero d'Ordine in Colonna7, dandomi solo le macchine legate a quel numero d'Ordine.
In un altro foglio simile ho manipolato questa macro per riadattarla ai nuovi criteri, ma non funziona correttamente..
E' un po' complicato da spiegare, spero di essere chiaro nell'esposizione, comincio a postare la macro poi provo a spiegare..
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Sheets("Foglio8").Unprotect
ActiveSheet.ListObjects("Tabella21334").Range.AutoFilter Field:=18
ActiveSheet.ListObjects("Tabella21334").Range.AutoFilter Field:=5
ActiveSheet.ListObjects("Tabella21334").Range.AutoFilter Field:=4
ActiveSheet.ListObjects("Tabella21334").Range.AutoFilter Field:=2
If Target.Address = "$F$3" Then
Range("F5,D9").ClearContents
If Target.Value <> "" Then
ActiveSheet.Unprotect
ActiveSheet.ListObjects("Tabella21334").Range.AutoFilter Field:=4, Criteria1 _
:=Target.Value
Else
Sheets("Foglio8").Unprotect
ActiveSheet.ListObjects("Tabella21334").Range.AutoFilter Field:=4
End If
ElseIf Target.Address = "$F$5" Then
Range("D9").ClearContents
If Target.Value <> "" Then
ActiveSheet.Unprotect
ActiveSheet.ListObjects("Tabella21334").Range.AutoFilter Field:=2, Criteria1 _
:=Target.Value
Else
ActiveSheet.Unprotect
ActiveSheet.ListObjects("Tabella21334").Range.AutoFilter Field:=2
End If
End If
Sheets("Foglio8").Protect
Application.ScreenUpdating = True
End Sub
- Inserendo il Nome Cliente MARIO ROSSI in F3, la tabella si filtra correttamente restituendomi tutte le righe dove compare il Nome MARIO ROSSI.
- F5 questa volta, è la cella dove inserisco il Modello della macchina presente in Colonna2 (modello che ritrovo svariate volte all'interno della mia Tabella, perchè in questo caso i modelli hanno tutti lo stesso nome (poniamo Audi A6, il problema è che a me interessa trovare soltanto LE Audi A6 di MARIO ROSSI) , attualmente invece mi visualizza anche LE Audi A6 di altri clienti...
Cosa devo fare?
Spero di essere stato sufficientemente chiaro
![Indeciso :undecided:](./images/smilies/icon_undecided.gif)
Grazie per l'aiuto