Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Excel Un File che colleziona tutti i fogli di altri 24 file

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Excel Un File che colleziona tutti i fogli di altri 24 file

Postdi Alunna » 11/10/16 10:07

Buongiorno (di nuovo) ;)
Ho 24 file che hanno 3 fogli ognuno (nome file diverso, stessi nomi dei fogli). Dovrei collezionare in un unico file tutti i fogli dei 24 file d'origine... ho tentato una ricerca ma ho trovato solo situazioni di "accodamento" in un unico foglio/tabella...

Potete aiutarmi?

Grazie (di nuovo),
Alunna :)
Alunna
Utente Junior
 
Post: 18
Iscritto il: 21/10/15 11:01

Sponsor
 

Re: Excel Un File che colleziona tutti i fogli di altri 24 f

Postdi Anthony47 » 11/10/16 22:55

Una macro come questa legge tutti i file contenuti in una directory e ne ricopia i Fogli all'interno del file che contiene la macro:
Codice: Seleziona tutto
Sub shskraper()
Dim myPath As String, cWB As String, myCFile As String
Dim I As Long
'
myPath = "D:\PIPPO\"        '<<< La directory che contiene i file da "risucchiare"
Application.EnableEvents = False
myCFile = Dir(myDir & "*.xls*")
Do
DoEvents
If myCFile = "" Then Exit Do
    Workbooks.Open (myPath & myCFile)
    cWB = ActiveWorkbook.Name
    For I = 1 To ActiveWorkbook.Worksheets.Count
        Workbooks(cWB).Sheets(I).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    Next I
    Workbooks(cWB).Close False
myCFile = Dir
Loop
Application.EnableEvents = True
MsgBox ("Completato...")
End Sub

La riga marcata <<< va personalizzata come da commenti

Quindi metterai gli N file da leggere nella directory specificata e poi avvii la macro.
Per evitare equivoci, nella directory che specifichi devono esserci solo i file che devi "risucchiare" ed eventualmente altri file ma non Excel; certamente non deve esserci il file che contiene la macro.

Fai sapere...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel Un File che colleziona tutti i fogli di altri 24 f

Postdi Alunna » 12/10/16 21:33

Ciao Anthony :)
grazie per la pazienza e l'aiuto.

Ho modificato la riga che hai indicato inserendo la directory che contiene unicamente i file Excel da cui prendere i singoli fogli.
Ho messo sul desktop il file Excel con la macro (quindi fuori dalla directory di cui sopra).

Eseguo la macro... mi fornisce il messaggio finale di completamento. Ma nulla si è mosso. Il file non si popola rimane con il suo foglio vuoto.

Dove sto sbagliando?
Ancora grazie,
Alunna :)
Alunna
Utente Junior
 
Post: 18
Iscritto il: 21/10/15 11:01

Re: Excel Un File che colleziona tutti i fogli di altri 24 f

Postdi Anthony47 » 13/10/16 01:21

Facendo un esercizio di pranoterapia ho visto che myPath non ha la "\" finale, poi vedo altre cose che non sono pero' molto chiare...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel Un File che colleziona tutti i fogli di altri 24 f

Postdi Alunna » 13/10/16 08:26

Codice: Seleziona tutto
Sub shskraper()
Dim myPath As String, cWB As String, myCFile As String
Dim I As Long
'
myDir = "C:\prova\"        '<<< La directory che contiene i file da "risucchiare"
Application.EnableEvents = False
myCFile = Dir(myDir & "*.xls*")
Do
DoEvents
If myCFile = "" Then Exit Do
    Workbooks.Open (myDir & myCFile)
    cWB = ActiveWorkbook.Name
    For I = 1 To ActiveWorkbook.Worksheets.Count
        Workbooks(cWB).Sheets(I).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    Next I
    Workbooks(cWB).Close False
myCFile = Dir
Loop
Application.EnableEvents = True
MsgBox ("Completato...")
End Sub


Grazie Anthony... ho fatto alcune piccole modifiche che ho riportato nel codice sopra e l'ho provata su una decina di file e... funziona! :)
Alunna (sempre felice di leggervi, non solo sulla parte forum!)
Alunna
Utente Junior
 
Post: 18
Iscritto il: 21/10/15 11:01

Re: Excel Un File che colleziona tutti i fogli di altri 24 f

Postdi Anthony47 » 13/10/16 12:32

Brava, vedo che sei un'alunna che impara in fretta... 8)
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Excel Un File che colleziona tutti i fogli di altri 24 file":


Chi c’è in linea

Visitano il forum: Maury170419 e 18 ospiti