Condividi tramite

VBA e Nomi Definiti

Anonimo
2018-03-11T22:00:37+00:00

Buonasera,

avrei bisogno di estrarre, con VBA, il contenuto da un "nome definito" in una cartella Excel.

Esempio: dal nome "ElencoNomi" (che contiene "Pippo", "Pluto", "Paperino"), vorrei creare una tabella monodimensionale "TabellaNomi() as string" che contenga i nomi suddetti (TabellaNomi(0)= "Pippo", TabellaNomi(1)="Pluto", TabellaNomi(2)="Paperino").

Non sono riuscito a capire come si fa.

Grazie

Ivo

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2018-03-12T11:04:10+00:00

Ciao  Ivo,

Grazie, Norman, funziona.

Bene!

Visto che ci sono: e se il "Nome definito" contiene un array o una formula, non collegati a celle di un foglio, come si può fare?

Nel caso di un array assegnato ad un nome definito, prova la seguente leggera modifica del codice suggerito da Casanmaner:

'=========>>

Public Sub Test()

    Dim TabellaNomi As Variant

    TabellaNomi = Split(Evaluate(ThisWorkbook.Names("ElencoNomi").Value), _

                        Application.International(xlRowSeparator))

    Call MsgBox( _

         Prompt:=Join(TabellaNomi, vbNewLine), _

         Buttons:=vbInformation, _

         Title:="REPORT")

End Sub

'<<=========

Potresti scaricare il mio file di prova Ivo20180312.xlsm

===

Regards,

Norman

La risposta è stata utile?

2 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

9 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2018-03-12T18:53:49+00:00

    Ah ok,

    allora vedi l'ultimo file esempio di Norman dove la procedura estrae i nominativi proprio come inseriti nel nome "Nomi1" :)

    La risposta è stata utile?

    2 persone hanno trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2018-03-12T09:11:12+00:00

    Ciao, ho provato, ma ottengo l'errore "Tipo non corrispondente".

    Buona giornata

    Ivo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-03-12T06:33:53+00:00

    Ciao Ivo,

    avrei bisogno di estrarre, con VBA, il contenuto da un "nome definito" in una cartella Excel.

    Esempio: dal nome "ElencoNomi" (che contiene "Pippo", "Pluto", "Paperino"), vorrei creare una tabella monodimensionale "TabellaNomi() as string" che contenga i nomi suddetti (TabellaNomi(0)= "Pippo", TabellaNomi(1)="Pluto", TabellaNomi(2)="Paperino").

    Non sono riuscito a capire come si fa.

    Oltre all'ottimo suggerimento di Casanmaner, se il nome definito si riferisse ad un elenco in intervallo del workbook, prova qualcosa del genere:

    '=========>>

    Public Sub Tester()

        arr = Application.Transpose(ThisWorkbook.Names("ElencoNomi"). _                                                                                 RefersToRange.Value)

    End Sub

    '<<=========

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2018-03-11T23:01:07+00:00

    Se in "Riferito a:" hai

    ="Pippo,Pluto,Paperino"

    Prova qualcosa del genere:

    Sub Test()

      Dim TabellaNomi As Variant

      TabellaNomi = Split(Application.Evaluate(ThisWorkbook.Names("ElencoNomi").Value), ",")

      MsgBox TabellaNomi(0) & vbNewLine & TabellaNomi(1) & vbNewLine & TabellaNomi(2)

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento