Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [Excel] Nome di un foglio in una cella di un altro foglio

    Salve, ho cercato questa opzione senza trovarla, quindi chiedo a voi, ammesso che sia possibile...
    Sto realizzando un foglio di lavoro che riepiloga alcuni contenuti (diciamo che "tira le somme") di altri fogli presenti nello stesso file Excel.
    Vorrei che in questo foglio di riepilogo apparissero i nomi degli altri fogli in maniera automatica ed eventualmente dinamica se cambiassi i nomi a tali fogli. Ho trovato solo formule per inserire il nome del foglio nella cui cella si vuole operare, ma non di fogli "fratelli"...

  2. #2
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,700
    Il foglio deve essere formato "macro" (xlsm).
    Apri l'editor VBA e inserisci un nuovo modulo al cui interno scrivi una cosa tipo:
    codice:
    Function NOMEFOGLIO(numero As Long)
    NOMEFOGLIO = Sheets(numero).Name
    End Function
    nel foglio potrai fare riferimento al nome del foglio usando la funzione con l'argomento progressivo (1 dal primo foglio)
    Io ne ho viste cose che voi umani non potreste immaginare. Navi da combattimento in fiamme al largo dei bastioni di Orione e ho visto i raggi B, balenare nel buio vicino le porte di Tannhäuser. E tutti quei momenti ... andranno ... perduti nel tempo, come lacrime nella pioggia. È tempo di morire. (Roy Batty).

  3. #3
    Ok ci provo, non sono una cima con Visual Basic, speravo in qualche combinazione di funzioni standard...

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,674
    Ciao, non l'ho provato ma con una semplice ricerca ho trovato questo
    https://www.howtoexcel.org/tips-and-...k-without-vba/
    vedi se può andare bene.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,674
    Ho cercato la traduzione in italiano di quella formula e altre varie informazioni per capire come funziona. Ho fatto delle prove e direi che fa il suo dovere.

    Riporto qui le varie informazioni che sono riuscito a reperire.

    Parliamo della funzione GET.WORKBOOK (nella versione italiana, INFO.CARTELLA.DI.LAVORO).
    Questa restituisce informazioni sulla cartella di lavoro e può essere usata nella definizione di nomi per le formule. Non si può utilizzare direttamente dentro una cella, genera un errore "formula non valida".

    E' una funzione presente dalla versione 4.0 di Excel. Io l'ho provata sul 2016. Da tenere presente che questa funzione richiede che il documento sia salvato come cartella di lavoro con attivazione macro.

    Definiamo quindi un nome attraverso il menu "Formule > Definisci nome" oppure "Formule > Gestione nomi > [Nuovo]".
    - Per "Nome:" mettiamo ad esempio "listaFogli"
    - Per "Riferito a:" mettiamo questa formula:
    codice:
    =RIMPIAZZA(INFO.CARTELLA.DI.LAVORO(1); 1; TROVA("]"; INFO.CARTELLA.DI.LAVORO(1));)&T(ADESSO())
    Sostanzialmente la funzione INFO.CARTELLA.DI.LAVORO(1) restituisce una matrice dei "percorsi" dei fogli, dove ogni elemento è composto dal nome del file e da quello del foglio; potrebbe essere una cosa del genere:
    codice:
    [Cartel1.xlsm]Foglio1
    [Cartel1.xlsm]Foglio2
    [Cartel1.xlsm]Foglio3
    Le altre funzioni (RIMPIAZZA e TROVA) non fanno altro che eliminare la parte iniziale di ogni elemento, lasciando solo i nomi dei fogli.

    Da notare inoltre che non si tratta di funzioni volatili per cui quando vengono modificati o aggiunti dei fogli non verrebbero aggiornati i valori restituiti. Per tale motivo viene aggiunta la parte &T(ADESSO()) che sostanzialmente rende volatile l'intera formula forzandola quindi ad aggiornarsi automaticamente nel caso in cui si vada a rinominare o ad aggiungere dei fogli. E' importante sapere che quando invece i fogli vengono eliminati non avviene comunque nessun aggiornamento anche se è impostata l'opzione di calcolo automatico, quindi in questo caso sarà necessario aggiornare manualmente il foglio; lo si può fare semplicemente pigiando Ctrl+Alt+F9.

    Per recuperare e stampare sul foglio la lista dei nomi, possiamo fare in questo modo:
    - nel primo foglio per la colonna A inseriamo una serie di indici da 1 a 20, ad esempio (questi rappresentano l'indice di ciascun foglio)
    - nella casella B1 inseriamo questa formula:
    codice:
    =SE.ERRORE(INDICE(listaFogli;A1);"")
    Selezioniamo questa cella e trasciniamo il quadratino (o facciamo doppio click su questo) in modo da estendere la formula verso il basso per tutti gli indici.

    Il gioco è fatto, i nomi di ciascun foglio presente nella cartella di lavoro compariranno in questa lista che sarà automaticamente aggiornata (a parte quando si eliminano i fogli, come indicato sopra).

    Ho aggiunto la funzione SE.ERRORE che ripulisce semplicemente le celle da eventuali #RIF! dove l'indice è maggiore del totale dei fogli.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  6. #6
    Spiegazione molto chiara, vedrò di farne tesoro. Grazie mille!
    Scusa se non ho risposto prima, ma ho avuto alcune impellenze...

  7. #7
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,700
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Ho cercato la traduzione in italiano di quella formula e altre varie informazioni per capire come funziona. Ho fatto delle prove e direi che fa il suo dovere.

    Riporto qui le varie informazioni che sono riuscito a reperire.

    Parli

    ...........

    e SE.ERRORE che ripulisce semplicemente le celle da eventuali #RIF! dove l'indice è maggiore del totale dei fogli.
    mi sembra un lungo lavoro quando esiste già la collezione sheets con i fogli presenti già indicizzati ...
    Io ne ho viste cose che voi umani non potreste immaginare. Navi da combattimento in fiamme al largo dei bastioni di Orione e ho visto i raggi B, balenare nel buio vicino le porte di Tannhäuser. E tutti quei momenti ... andranno ... perduti nel tempo, come lacrime nella pioggia. È tempo di morire. (Roy Batty).

  8. #8
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,674
    Quote Originariamente inviata da Misterxxx
    mi sembra un lungo lavoro quando esiste già la collezione sheets con i fogli presenti già indicizzati ...
    Può essere ma è un'alternativa all'uso di VBA, se si preferisce evitarlo.

    Perdonami, non volevo assolutamente screditare la soluzione da te proposta (che anche io preferirei), nel caso tu lo abbia pensato; ad ogni modo ho semplicemente risposto alla richiesta dell'OP:
    Quote Originariamente inviata da Gas75
    speravo in qualche combinazione di funzioni standard...
    quella che ho postato è una soluzione usando, appunto, una combinazione di funzioni standard (o giù di lì). Tutto qui.

    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  9. #9
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,700
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Può essere ma è un'alternativa all'uso di VBA, se si preferisce evitarlo.

    Perdonami, non volevo assolutamente screditare la soluzione da te proposta (che anche io preferirei), nel caso tu lo abbia pensato; ad ogni modo ho semplicemente risposto alla richiesta dell'OP:

    quella che ho postato è una soluzione usando, appunto, una combinazione di funzioni standard (o giù di lì). Tutto qui.

    ma figurati non era per quello, ma per il fatto che con una riga di vba hai la soluzione
    Io ne ho viste cose che voi umani non potreste immaginare. Navi da combattimento in fiamme al largo dei bastioni di Orione e ho visto i raggi B, balenare nel buio vicino le porte di Tannhäuser. E tutti quei momenti ... andranno ... perduti nel tempo, come lacrime nella pioggia. È tempo di morire. (Roy Batty).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.