Condividi:        

Unione Fogli di una cartella Excel

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

Unione Fogli di una cartella Excel

Postdi Omocaig » 17/10/18 15:07

Buongiorno, non sono riuscito a trovare nel forum una macro per copiare ed incollare sequenzialmente tutti i fogli contenuti in una cartella excel all'interno di un foglio "master".

Si tratterebbe di copiare dalla colonna A alla colonna I partendo dalla riga due fino all'ultima compilata del foglio Sheet1 e copiare i valori nel foglio "master"
Successivamente ripetere l'operazione con il foglio sheet 2 ed incollare i valori dopo l'ultima riga compilata nel foglio master.
Così via fino all'ultimo foglio presente nella cartella ( ad eccezione di "master" ovviamente ).

Potreste aiutarmi o indicarmi un topic ?

Grazie, Giacomo

Excel 2016
Xp + Office 2016 Ita
Omocaig
Utente Junior
 
Post: 93
Iscritto il: 11/05/15 15:08

Sponsor
 

Re: Unione Fogli di una cartella Excel

Postdi Anthony47 » 17/10/18 22:44

Ad esempio questa macro:
Codice: Seleziona tutto
Sub Consolida()
Dim Dest As String, I As Long, myRan As String
'
Dest = "MASTER"         '<<< Il foglio su cui si consolida
'
For I = 1 To Worksheets.Count
    If UCase(Sheets(I).Name) <> UCase(Dest) Then
        Sheets(I).Select
    'Copia l'intervallo usato di ogni foglio:
        myRan = "A:I"                             '<<< Le colonne dei dati importati
        LastR = Range(myRan).Find(What:="*", After:=Range(myRan).Cells(1, 1), _
            SearchOrder:=xlByRows, _
            SearchDirection:=xlPrevious).Row
        Application.Intersect(Range(myRan), Range("2:" & LastR)).Copy
    'Accodalo al contenuto di Master:
        LastR = Sheets(Dest).Range(myRan).Find(What:="*", After:=Range(myRan).Cells(1, 1), _
            SearchOrder:=xlByRows, _
            SearchDirection:=xlPrevious).Row
        Sheets(Dest).Cells(LastR + 1, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
            xlNone, SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
    End If
Next I
Sheets(Dest).Select
MsgBox ("Completato...")
End Sub

Va messo in un "Modulo standard" del vba; la riga marcata <<< va personalizzata come da commento.
Il foglio di destinazione ("Master", nel mio codice) deve gia' esistere e deve gia' avere un contenuto; ad esempio almeno le intestazioni di una colonna.

Poi all'occorrenza esegui la Sub Consolida, che copiera' su Master (o sul foglio che hai indicato) il contenuto valido di A:I di tutti gli altri fogli, accodandolo a quanto gia' presente.

Prova e fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Unione Fogli di una cartella Excel":


Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti