Volevo fare in modo che tramite VB quando aggiorno un elenco nominativo a cui è assegnato un nome mi venga aggiornato il range che lo compone in "Gestione Nomi". Ho provato a modificare una macro registrata:
Sub Macro1()
xRiga = Sheets("Foglio1").Cells(Rows.Count, 2).End(xlUp).Row
Sheets("Foglio1").Select
With ActiveWorkbook.Names("ElencoNomi")
.Name = "Pazienti"
.RefersTo = "=Foglio1!B2:B" & xRiga
.Comment = ""
End With
Sheets("Foglio2").Select
End Sub
ma mi restituisce dei valori sballati, non sono riuscito a capire bene l'utilizzo di "RefersTo".
Se esiste altro metodo per fare questa cosa ben venga; grazie anticipatamente e buona giornata a tutti.
Ciao Antonio
Vediamo se ho capito.
Mettiamo tu abbia il tuo elenco(tabella) in B2:B10 del Foglio1 e che a questo elenco(tabella) tu abbia asegnato il nome ElencoNomi. Vuoi, aggiungendo o togliendo un valore all'elenco(tabella), che si aggiorni il riferimento celle/nome.
Possiamo farlo automaticamente sfruttando l'evento Change oppure tramite macro da richiamare in qualche modo. In entrambi i casi, *non devono esserci righe vuote* nell'elenco(tabella).
Vediamo l'evento. Il codice qui sotto va copia/incollato nel modulo di codice del foglio con l'elenco:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim lRiga As Long
If Target.Column = 2 Then
lRiga = Me.Range("B" & Me.Rows.Count).End(xlUp).Row
ThisWorkbook.Names.Add Name:="ElencoNomi", RefersTo:= _
"=Foglio1!B2:B" & lRiga
End If
'La riga sotto con la MsgBox serve solo per farti vedere le modifiche,
'non serve ad altro, da cancellare quando hai capito
MsgBox [ElencoNomi].Address
End Sub
Grazie per l'attenzione e fai sapere se risolvi.