Omar ha centinaia di fogli di lavoro con nomi diversi tutti nella stessa cartella di lavoro. La struttura di ogni foglio di lavoro è essenzialmente la stessa. Vuole copiare un intervallo fisso (A146:O146) da ciascun foglio di lavoro a un nuovo foglio di lavoro, una riga dopo l’altra.
Ci sono alcuni modi in cui puoi farlo. Per come la vedo io, una semplice macro è la soluzione migliore. Prima di entrare nell’approccio basato su macro, tuttavia, c’è un modo per farlo usando le formule. Un modo piuttosto unico si basa sulla definizione di una formula in Gestione nomi. Segui questi passaggi per iniziare:
Visualizza la scheda Formule della barra multifunzione.
- Nel gruppo Nomi definiti, fai clic sullo strumento Gestione nomi. Excel visualizza la finestra di dialogo Gestione nomi.
- Fai clic sul pulsante Nuovo. Excel visualizza la finestra di dialogo Nuovo nome.
- Nel campo Nome, inserisci il nome ElencaFogli (nota che si tratta di una singola parola, senza spazi).
- Nel campo Riferito a, inserisci la seguente formula:
=RIMPIAZZA(INFO.CARTELLA.DI.LAVORO(1);1;TROVA("]";INFO.CARTELLA.DI.LAVORO(1);1);"")
- Fai clic sul pulsante OK per terminare la creazione dell’intervallo denominato. Il nuovo intervallo dovrebbe apparire nella finestra di dialogo Gestione nomi.
- Fai clic sul pulsante Chiudi per chiudere la finestra di dialogo Gestione nomi.
Con la formula definita in questo modo, puoi quindi andare al foglio di lavoro su cui vuoi riepilogare tutti quegli intervalli (diciamo che il nome di questo foglio di lavoro è “Riepilogo”). Suggerisco caldamente di assicurarti che questo foglio di lavoro sia l’ultimo nella tua cartella di lavoro. Nel foglio di lavoro Riepilogo, inserisci la seguente formula nella colonna A di qualsiasi riga:
=INDIRETTO(INDICE(ElencaFogli;RIGHE($A$1:$A1))&"!"&CELLA("indirizzo";A$2))
Copia la formula verso il basso, per tutte le righe necessarie a rappresentare tutti i fogli di lavoro. In altre parole, se hai 25 fogli di lavoro (senza contare il foglio di lavoro Riepilogo), copia la formula di 24 righe. Contando l’originale, ora dovresti visualizzare la formula in un totale di 25 righe.
Una nota a margine: la formula ElencaFogli, quella definita in Gestione nomi, restituisce un array di nomi di fogli di lavoro. La funzione RIGHE viene utilizzata per determinare quale elemento di tale matrice viene restituito tramite la funzione INDICE. Se il tuo foglio di lavoro Riepilogo non è l’ultimo nella cartella di lavoro, può essere facilmente restituito da ElencaFogli e finirai per estrarre i valori da esso. Questo è senza dubbio qualcosa che non vuoi fare, motivo per cui ho suggerito di assicurarmi che Riepilogo fosse l’ultimo foglio di lavoro nella cartella di lavoro.
Ora copia semplicemente le formule dalla colonna A a destra in modo da averle fino a tutta la colonna O. Il risultato è che avrai i valori da A146: O146 nelle celle che contengono le formule.
In precedenza ho detto che penso che un approccio basato su macro sia la soluzione migliore. Ecco una breve macro che dimostra perché penso questo.
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Si noti che esistono due variabili (sNewName e sRange) impostate all’inizio della macro. Queste rappresentano il nome che si desidera utilizzare per il nuovo foglio di lavoro di riepilogo creato dalla macro e l’intervallo di celle che si desidera copiare da ciascun foglio di lavoro.
La macro rende quindi attivo il primo foglio di lavoro nella cartella di lavoro e aggiunge un nuovo foglio di lavoro da utilizzare per il riepilogo. A questo foglio di lavoro viene assegnato il nome specificato nella variabile sNewName. La macro passa quindi attraverso un ciclo controllando ciascuno degli altri fogli di lavoro. Se il foglio di lavoro non è quello di riepilogo, il nome del foglio di lavoro viene inserito nella colonna A del foglio di riepilogo e l’intervallo specificato nella variabile sRange (A146:O146) viene copiato nel foglio di lavoro di riepilogo a partire dalla colonna B .
L’approccio macro è facile e veloce. Inoltre, se hai bisogno di rifare il tuo foglio di riepilogo, basta eliminare quello vecchio ed eseguire nuovamente la macro.