|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Dec 2006
Messaggi: 37
|
[VBA-EXCEL] Validare cella con valori di altro foglio
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: 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. ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:38.