Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Romualdo,
"Più so' e più mi accorgo di non sapere."
o se preferisci
"Il vero sapiente è colui che sa di non sapere."
Quindi non scusarti: per una cosa che posso insegnare ce ne sono miliardi per cui merito di stare dietro la lavagna :-))
Per quanto riguarda la tua domanda: vediamo se ho capito. La convalida (la cella con la convalida) resta nel foglio1 cella A1 mentre l'elenco di convalida va nel foglio 2 colonna A?
Se questo è, incolla questo codice nel modulo di classe del Foglio1
---
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Address = "$A$1" Then Exit Sub
Dim lRiga As Long
Dim sh As Worksheet
Dim rng As Range
With Application
.DisplayAlerts = False
.EnableEvents = False
End With
Set sh = ThisWorkbook.Worksheets("Foglio2")
With sh
lRiga = .Range("A" & .Rows.Count).End(xlUp).Row
Set rng = .Range("A1:A" & lRiga).Find(What:=Target.Value, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlColumns, _
SearchDirection:=xlNext, _
MatchCase:=False)
If rng Is Nothing Then
'se non lo trovo aggiungo il nuovo valore
'all'elenco di convalida
.Range("A" & lRiga + 1).Value = Target.Value
'Aggiorno il nome
ThisWorkbook.Names.Add Name:="Elenco", _
RefersTo:="=" & _
.Name & "!" & _
"$A$1:$A$" & _
lRiga + 1
End If
End With
With Application
.DisplayAlerts = True
.EnableEvents = True
End With
Set rng = Nothing
Set sh = Nothing
End Sub
David