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:
--------------------------
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
---------------------------------------
Purtroppo vedo che la "listdata" punta sempre alle celle del secondo foglio ("fatture") e non al primo ("listinototalone").
Grazie a chi mi saprà aiutare e ne avrà la pazienza.
:help: