Sono un ignorante becero alle primissime armi.
Ho due fogli, nel primo un elenco di prodotti, dove nella prima colonna ho il nome del prodotto e nel secondo il nome del fornitore. Più altre che per ora non interessano.
Nel secondo vorrei inserire le fatture.
Vorrei che, in questo secondo foglio ("fatture"), a seconda del fornitore che scelgo nella prima colonna, nella seconda ci sia il controllo di validazione che mi permetta di inserire i soli prodotti di quello specifico venditore.
Premetto che nel primo foglio le righe sono ordinate per venditore.
Ecco cosa ho beceramente partorito:
Purtroppo vedo che la "listdata" punta sempre alle celle del secondo foglio ("fatture") e non al primo ("listinototalone").codice:Private Sub Worksheet_Change(ByVal Target As Range) 'SE CAMBIO LA COLONNA "FORNITORE" DEVO CAMBIARE NELLA CELLA A FIANCO I PRODOTTI DISPONIBILI If Target.Column() = 1 Then 'CERCA IL PRIMO PRODOTTO PER QUEL FORNITORE Set trovaPrimo = Worksheets("listinototalone").Range("B:B").Find(Target) primoprod = trovaPrimo.Row() 'CONTA I PRODOTTI PER QUEL FORNITORE ' prima è la cella dove è la prima occorrenza di quel fornitore ' quanti è il numero di occorrenza nella colonna B per quel fornitore quantiProd = Application.WorksheetFunction.CountIf(Workbooks(1).Sheets(1).Range("B:B"), Target) ultimoprod = primoprod + quantiProd Worksheets("listinototalone").Activate ActiveWorkbook.Names.Add Name:="listdata", RefersTo:=Range(Cells(primoprod, 1), Cells(ultimoprod, 1)) Worksheets("fatture").Activate With Range("B" & Target.Row()).Validation 'definizione delle celle per la convalida .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:="=listdata" .IgnoreBlank = True .InCellDropdown = True .ShowInput = True .ShowError = True End With End If End Sub
Grazie a chi mi saprà aiutare e ne avrà la pazienza.
:help:

Rispondi quotando