Condividi:        

Filtrare elenco a discesa di altro sheet con valore casella

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

Filtrare elenco a discesa di altro sheet con valore casella

Postdi Corwin56 » 27/08/18 21:31

Salve a tutti

devo fare una piccola gestione ordini. Nelle righe di dettaglio (Sheet Foglio1) ho un casella a discesa con la marca dell'articolo (Sheet Marca); alla scelta del valore Marca richiamo una fuzione VBA che dovrebbe filtrarmi l'elenco a discesa (sheet Prodotti - Nome Elenco -> ElencoProd) già collegato alla seconda casella a discesa (Codice Articolo) della riga di dettaglio) in base al valore Marca.

A questo punto dovrei recuperarmi altri tre campi della riga scelta da lla casella a discese (ElencoProd).

Sto usando delle macro.

Col database sarebbe cosa da minuti (ne ho fatte a bizzeffe con Delphi, Access, Oracle, dotNet etc), ma qui è più compicato (non posso usare DB e sono un pò arruginito con efunzioni macro excel :oops: ...)

vorrei allegare il piccolo excel che ho creato (per ulteriore chiarezza) ma vedo che non è possibile
Come posso fare?

grazie
Raul
Corwin56
Newbie
 
Post: 2
Iscritto il: 27/08/18 21:02

Sponsor
 

Re: Filtrare elenco a discesa di altro sheet con valore case

Postdi Anthony47 » 27/08/18 23:51

Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487

Comunque ho gia' visto il tuo file...
Mi pare che stai cercando di ottenere una convalida da un elenco che precedentemente deve essere filtrato.

Il mio suggerimento e' che si crei un secondo elenco, dinamico, che contiene solo le voci che nel primo elenco sono state filtrate. Possiamo farlo in questo modo (con riferimento al contenuto del foglio Prodotti, nel file che ti allego):
1) Da G2 verso il basso creiamo una sequenza crescente 1, 2, 3, 4, 5, ... fino all'ultima riga che potrebbe essere usata per l'elenco principale e oltre.
2) In I2 crei la sequenza dei numeri di righe che contengono valori visualizzati, usando la formula
Codice: Seleziona tutto
=GRANDE((RIF.RIGA($B$2:$B$22))*($B$2:$B$22<>"")*(SUBTOTALE(2;SCARTO($G$1;1;0;RIF.RIGA(INDIRETTO("1:"&RIGHE($A$2:$A$22)));1))>SUBTOTALE(2;SCARTO($G$1;0;0;RIF.RIGA(INDIRETTO("1:"&RIGHE($B$2:$B$22)));1)));RIF.RIGA(A1))
Da confermare con Contr-Maiusc-Enter, non il solo Enter; poi copiare verso il basso per tutte le righe che hanno in valore in colonna G
3) Selezioni J2:N2 e inserisci nella barra della formula questa formula:
Codice: Seleziona tutto
=SE.ERRORE(SE(I2>0;INDICE($A$1:$E$23;I2;0);"");"")

Da confermare con Contr-Maiusc-Enter, non il solo Enter
Poi copia J2:N2 e incolla in J3:Jxx (fino a che in colonna I ci sia un valore)

In questo modo abbiamo creato un elenco che contiene solo le righe che sono visualizzate dopo aver applicato il filtro alle colonne A:E. Useremo questi valori per la convalida in Foglio1!B19 e sottostanti
NOTA che potresti non vedere tutte le righe, perche' alcune righe potrebbero essere nascoste per effetto del filtro.

4) Per visualizzare nell'elenco di convalida solo le righe presenti nel nuovo elenco di convalida creiamo un "nome" di lunghezza dinamica. Per questo scopo, tramite Menu /Formule /Gestione nomi, creiamo un "Nuovo Nome", poi:
-come Nome scrivi CONVAL
-come Ambito lascia Cartella di lavoro
-come "Riferito a" inserisci la formula
Codice: Seleziona tutto
=SCARTO(Prodotti!$J$2;0;0;CONTA.SE(Prodotti!$I$2:$I$13;">0");1)


5) A questo punto la convalida in B19 di Foglio1 avra' come origine la formula =CONVAL

A questo punto le colonne Marca e Descrizione la puoi ottenere con Cerca.Vert, cercando il CodiceArticolo (colonna B) o nella tabella originale (foglio Prodotti, colonne A:E) oppure nella nuova tabella (Foglio Prodotti, colonne J:N)

Il file con queste modifiche e' scaricabile qui: https://www.dropbox.com/s/6gd2e5rg2xi3k ... 7.xls?dl=0

Ciao, fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Filtrare elenco a discesa di altro sheet con valore case

Postdi Corwin56 » 28/08/18 15:18

Grazie Anthony

stasera ci butto un occhio!

Raul
Corwin56
Newbie
 
Post: 2
Iscritto il: 27/08/18 21:02

Re: Filtrare elenco a discesa di altro sheet con valore case

Postdi Anthony47 » 30/08/18 22:05

Dalle nostre Linee guida per pubblicare le vostre domande (vedi viewtopic.php?f=26&t=103911&p=605595#p605595):
12) Lasciamo a voi la scelta di pubblicare la stessa richiesta su piu' forum (cross-posting), ma sarebbe scorretto non "seguire" poi tutte le discussioni.
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Filtrare elenco a discesa di altro sheet con valore casella":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti