Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Metto la routine, veramente un po' modificata comunque il succo è questo.
Questa mi chiede il numero che associa a noz, quz, vaz, voz, apz e poi mi nomima tutta la riga.
Il problema rimane sempre quello cioè mi mette il nome della cella tipo noz10 in quel determinato foglio ma non il nome del foglio cioè =#RIF!$B$10.
Questo codice che mi sono permesso di *normalizzare*, ti mette noz(n), quz(n), ecc. nella riga 1 del foglio attivo in *Excel fino alla versione 2003*, eliminando l'eventuale name già presente in quella cella:
Public Sub mNomi()
'dichiaro le variabili
Dim sName As String
Dim vNum As Variant
Dim vList() As Variant
Dim lng As Long
'inserisco il valore nella InputBox
vNum = Application.InputBox("Introduci il foglio?")
'controllo che nell'InputBox vega inserito
'un valore numerico e controllo inoltre se
'è stato premuto Annulla o non inserito un valore
If vNum = False Or vNum = "" Or Not IsNumeric(vNum) Then Exit Sub
'creo l'Array di voci
vList = Array("noz", "quz", "vaz", "voz", "apz")
'ciclo array e celle
For lng = 0 To 4
'creo la stringa per il Name
sName = vList(lng) & vNum
'nel foglio attivo
With ActiveSheet
'in caso di errore(in pratica l'errore
'c'è se non vi è nessun Name presente)
'passo all'istruzione successiva
On Error Resume Next
'elimino l'eventuale Name presente nella cella
'(se non c'è, ho errore ma come detto passo
'alla riga successiva)
.Names(.Cells(1, lng + 1).Name.Name).Delete
'aggiungo il nuovo Nane
.Names.Add Name:=sName, RefersTo:="=" & _
.Name & "!" & .Cells(1, lng + 1).Address(True, True)
End With
Next
End Sub
*Per le versioni 2007 e 2010 di Excel*, devi modificare il codice, o meglio devi modificare i vari noz,quz, ecc, in quanto esistono colonne fino a XFD e quindi noz1, ad esempio, va in contrasto con quanto richiesto per la univocità dei nomi degli oggetti presenti sul foglio. Nel codice che ho postato è sufficiente modificare questa riga:
vList = Array("noz", "quz", "vaz", "voz", "apz")
così:
vList = Array("nozx", "quzx", "vazx", "vozx", "apzx")