La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Buona sera ho un file con il foglio Articoli e il foglio1; ne l foglio articoli ci sono diverse colonne Gruppo, sottogruppo e descrizione articolo ecc,
nel foglio1 vorrei fare un Menù a tendina per la descrizione articolo in base al sottogruppo merceologico, allego il file di esempio, grazie anticipatamente
ciao
fai una ricerca alla volta o usi più celle
per la prima si fa con una formula e una colonna d'appoggio
per la seconda ci vogliono più colonne d'appoggio
esempio solo una ricerca
ti ho sistemato la tabella dei sottogruppi devono essere scritti esattamente come nella tabella principale
in foglio TB E4............non tabella
=A.COL(FILTRO(TB_Pesi_Sp[Descrizione];TB_Pesi_Sp[SottogruppoMerceologico]=Foglio1!$F$5);3)
nella convalida in foglio1 cella G5
=SCARTO(TB!$E$4;;;CONTA.VALORI(TB!$E$4:$E$100))
ricorda questo metodo vale solo per una convalida
se ne fai di più ogni sottogruppo deve avere la sua colonna
@gianfranco55 Grazie per la risposta dove tutto funziona alla perfezione ma se è possibile senza colonne d'appoggio perchè questo menù a tendina lo devo estendere per tante righe
ciao
spiacente ma con le formule si devono usare colonne d'appoggio
le convalide non accettano espansioni.
con il vba si può ma io non ne sono capace.
ora ci provo ma non ti assicuro niente
ciao
l'ho fatta vediamo se qualcuno la migliora o la fa nuova
Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ex Sheets("TB").Range("E4:E1000").Clear Sheets("Articoli").ListObjects("TB_Pesi_Sp").Range.AutoFilter Field:=3, Criteria1 _ :=ActiveCell Sheets("Articoli").Range("f28:f1000").SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("TB").Range("E4") If Not Intersect(Target, Range("F5:F1000")) Is Nothing Then Application.EnableEvents = False Target.Offset(0, 1).Select With Selection.Validation .Delete End With If Target <> "" Then With Target.Offset(0, 1).Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=TB!$E$4:$E$100" End With End If End If Application.EnableEvents = True ex: Application.EnableEvents = True End Sub
sfrutta sempre una colonna d'appoggio che però viene cancellata
perciò tu non la vedi
la fa in foglio TB da E4 in giù...ho lasciato l'intestazione ma puoi levarla
come cambi il nome nella colonna F del foglio1
la macro crea una convalida in E1 come scegli la descrizione
la convalida si svuota.
è meglio che aggiungi nel foglio1
Private Sub Worksheet_Activate() Application.EnableEvents = False ActiveSheet.ListObjects("TB_Pesi_Sp").Range.AutoFilter Field:=3 Application.EnableEvents = True End Sub
così quando apri il foglio1 saranno eliminati i filtri della colonna sottogruppo
non altri fatti da te
io con il vba questo so fare