Condividi tramite

Richiamare automaticamente dati da altri file excel

Anonimo
2013-08-19T08:58:42+00:00

Ciao a tutti, ecco il mio problema.

Ho tanti fogli Excel che ho rinominato 1,2,3 ..... etc sino al numero 76.

Questi fogli sono tutti uguali fra loro, nel senso che per esempio in B4 c'è il nome del soggetto

B6 c'è età

B7 c'è sesso

E così via.

Ora ho preparato un foglio Excel che chiamerò TUTTI DATI nel quale ho inserito diverse colonne; ad esempio:

colonna A: nome soggetto

Colonna E: età

Colonna F: sesso

In questo foglio voglio richiamare i dati di ciascun soggetto che sono presenti nei 76 fogli Excel di cui ho  parlato sopra.

Il mio obiettivo è che quei dati vengano richiamati automaticamente, senza inserire i dati del file di origine per ciascuna casella.

Mi rendo conto che non sia proprio molto chiaro.

Come si vede nel file di esempio che ho caricato su Skydrive, nel file TUTTI DATI devo inserire manualmente per ciascuna cella il file di origine.

C'è un modo che mi permetta di trascinare verso il basso la cella e copiare automaticamente i dati come fosse un semplice copia-incolla?

link ai files

http://sdrv.ms/17GW9K0

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

  1. Anonimo
    2013-08-20T18:07:52+00:00

    grazie andrea,

    ho letto quel topic, ma non riesco a far funzionare quelle formule con SOMMA(SE.....). e neanche quella matriciale.

    Ho caricato nuovamente i 4 files su skydrive perché mi sono accorto che il file TUTI DATI era sbagliato.

    Potresti scrivermi tu la formula funzionante sul file TUTTI DATI, in modo da capire come funziona?

     

    Per quanto riguarda la produzione di una macro, non so assolutamente come fare.

    Anche in questo caso potresti farmi un rapido esempio sui files che ho caricato?

     

    Paolo

    Ciao Paolo,

    la formula da utilizzare per recuperare il valore di 1 o più celle da un file chiuso, non è particolarmente difficile, devi solamente rispettare alcune regole sintattiche:

    • cartella dove si trova il file (con barra finale)         C:\CartellaFileChiuso\
    • nome del file (tra parentesi quadre)                     [55.xlsx]
    • nome del foglio                                                   Foglio1
    • nome del range                                                   $B$3:$B$6

    ora non rimane che unire il tutto con l'avvertenza di racchiudere i primi 3 tra apice singolo ' ed inserire un ! prima del range, il risultato è questo:

    ='C:\CartellaFileChiuso[55.xlsx]Foglio1'!$B3:$B6

    naturalmente nulla vieta di 'dare in pasto' l'intervallo così definito ad una funzione. Ad esempio:

    nel foglio SOGGETTI del file TUTTI DATI seleziona le celle I2:N2 e digita la seguente formula, modificandola con i tuoi riferimenti e confermando con Ctrl+Shift+Enter:

    =MATR.TRASPOSTA('C:\CartellaFileChiuso[2.xlsx]Foglio1'!$B$3:$B$8)

    in un'unica operazione avrai riportato tutti i dati che ti servono e anche di più.

    Continuando sulla stessa strada - ma non è detto che sia la migliore - se la procedura di cui sopra può risultare un po' lunga e noiosa, possiamo automatizzarla con una macro. Modifica la riga evidenziata nel codice che segue e se non hai mai utilizzato le macro ti invito a leggere Dove e come inserire il codice vba.

    Buon lavoro,

    Andrea.


    Sub riportaCelleDaFoglio1()

    Dim rSource As Range, cel As Range

    Dim sPathName As tring

    Dim lLastRow As Long

    '---------- modifica qui il path

    sPathName = "C:\CartellaFileChiuso"

    With Worksheets("SOGGETTI")

    lLastRow = .Range("C" & Rows.Count).End(xlUp).Row

    Set rSource = Range("C2:C" & lLastRow)

    For Each cel In rSource

    With .Range("I" & cel.Value).Resize(, 6)

    .FormulaArray = "=transpose('" & sPathName & "[" & cel.Value & ".xlsx]Foglio1'!B3:B8)"

    .Value = .Value

    End With

    Next

    End With

    End Sub


    40+ persone hanno trovato utile questa risposta.
    0 commenti Nessun commento

5 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-08-22T08:09:03+00:00

    ...

    ciao,

    ho guardato il link di VBA, ma dice che bisognerebbe sapere dove va copiato il codice per non fare casini.

    Cioè non voglio che questo codice mi vada ad influenzare gli altri fogli Excel, ma solo quelli che ti ho caricato come esempio!

    grazie

    Ciao Paolo,

    l'avvertenza che hai letto consiglia, in buona sostanza, di effettuare sempre una copia dei file sui quali effettuare i test per evitare di perdere dati nel caso ci fossero dei malfunzionamenti nel codice.

    La macro che ho preparato lavora sul foglio SOGGETTI ma, proprio perché vuol essere un esempio, non riporta tutti i dati di cui hai bisogno ma solo una parte e inoltre, non lavora sulle colonne utilizzate ma a partire dalla colonna I, quindi nessun dato presente sul foglio sarà sovrascritto.

    Se vuoi verificarne i risultati, puoi duplicare il file e testarla su quest'ultimo.

    Ciao,

    Andrea.

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2013-08-20T13:23:16+00:00

    nessuno riesce ad aiutarmi?

    Ciao Paolo,

    la via e senz'altro percorribile e qui trovi alcuni spunti per farlo, non ti sarà difficile adattare gli esempi alle tue esigenze per verificarne il funzionamento.

    Un discorso è recuperare qualche cella da un file esterno, altro è, invece, lavorare su tanti file diversi e con molti dati come nel tuo caso, perciò la scelta obbligata, secondo me, è la realizzazione di una macro che aggiorni a necessità i dati.

    Andrea.

    grazie andrea,

    ho letto quel topic, ma non riesco a far funzionare quelle formule con SOMMA(SE.....). e neanche quella matriciale.

    Ho caricato nuovamente i 4 files su skydrive perché mi sono accorto che il file TUTI DATI era sbagliato.

    Potresti scrivermi tu la formula funzionante sul file TUTTI DATI, in modo da capire come funziona?

    Per quanto riguarda la produzione di una macro, non so assolutamente come fare.

    Anche in questo caso potresti farmi un rapido esempio sui files che ho caricato?

    Paolo

    0 commenti Nessun commento
  3. Anonimo
    2013-08-20T12:57:26+00:00

    nessuno riesce ad aiutarmi?

    Ciao Paolo,

    la via e senz'altro percorribile e qui trovi alcuni spunti per farlo, non ti sarà difficile adattare gli esempi alle tue esigenze per verificarne il funzionamento.

    Un discorso è recuperare qualche cella da un file esterno, altro è, invece, lavorare su tanti file diversi e con molti dati come nel tuo caso, perciò la scelta obbligata, secondo me, è la realizzazione di una macro che aggiorni a necessità i dati.

    Andrea.

    0 commenti Nessun commento
  4. Anonimo
    2013-08-20T07:21:06+00:00

    nessuno riesce ad aiutarmi?

    0 commenti Nessun commento