Ciao a tutti!
Ho dei dati i excel, organizzati in tanti fogli (un foglio per ogni giorno di rilevazione).
Vorrei creare un unico foglio con tutti i dati.
Non è che sapete dirmi come si fa?
Grazie mille
Stefano
Ciao a tutti!
Ho dei dati i excel, organizzati in tanti fogli (un foglio per ogni giorno di rilevazione).
Vorrei creare un unico foglio con tutti i dati.
Non è che sapete dirmi come si fa?
Grazie mille
Stefano
I fogli fanno parte tutti dello stesso file?
Se sì il numero è così elevato da richiedere qualche metodo diverso dal copia incolla?![]()
I fogli hanno tutti la stessa struttura? Vuoi unirli in un foglio già esistente o crearne uno nuovo?
I fogli sono strutturati così: un file excel per ogni mese; in ogni file c'è un foglio per ogni giorno (quindi, circa trenta fogli per file excel).
Per ogni mese vorrei creare un nuovo sheet con tutti i dati del mese. Poi i diversi mesi li potrei unire con dei copia/incolla.
Stefano
Risolto con la seguente macro (unisce sheet excel di 9 colonne).
Ciao!
------------------------------------------------
Option Explicit
Sub join_sheets()
' Unisce tutti gli sheet di un excel accodandoli e aggiungendo una colonna col nome dello sheet
' (la data di estrazione dei dati)
'== DICHIARAZIONI ==
Dim found_risultato As Boolean
Dim Riga, Riga_Tot, line_nr As Integer
Dim Foglio As Worksheet
Dim result_sheet As String
'== INIZIALIZZAZIONI ==
found_risultato = False
'== ESECUZIONE ==
' Crea lo sheet "Risultato" se non è già presente
For Each Foglio In Worksheets
If Foglio.Name = "Risultato" Then
found_risultato = True
Sheets("Risultato").Cells.Clear
Exit For
End If
Next Foglio
If found_risultato = False Then
Worksheets.Add().Name = "Risultato"
End If
result_sheet = "Risultato" ' nome dello sheet in cui scrivere il risultato
'Scrivi intestazione
Sheets(result_sheet).Range("A1").Value = "Ragione Sociale Produttore"
Sheets(result_sheet).Range("B1").Value = "Data Doc. (Data Documento)"
Sheets(result_sheet).Range("C1").Value = "C.E.R."
Sheets(result_sheet).Range("D1").Value = "Nominativo Autista"
Sheets(result_sheet).Range("E1").Value = "Targa Aut. (Targa Automezzo)"
Sheets(result_sheet).Range("F1").Value = "Zona di raccolta"
Sheets(result_sheet).Range("G1").Value = "Tipo movimento"
Sheets(result_sheet).Range("H1").Value = "P.Netto (Peso Netto Rifiuto in Kg)"
Sheets(result_sheet).Range("I1").Value = "Ora"
Riga_Tot = 2
For Each Foglio In Worksheets
If Foglio.Name <> result_sheet Then
Riga = 1 'Riga iniziale del foglio (compresa intestazione)
line_nr = 0 ' Azzera il contatore
Do Until Foglio.Range("H" & Riga) = "" 'Conta quante righe sono presenti nel foglio
' utilizzando i valori di colonna 1 (utilizzare
' una colonna che non contiene celle vuote)
Riga = Riga + 1
line_nr = line_nr + 1
Loop
Riga = 2 'Riga iniziale dei dati
' Copia i dati delle prime 9 colonne.
While Riga <= line_nr
Worksheets(result_sheet).Range("A" & Riga_Tot) = Foglio.Range("A" & Riga)
Worksheets(result_sheet).Range("B" & Riga_Tot) = Foglio.Range("B" & Riga)
Worksheets(result_sheet).Range("C" & Riga_Tot) = Foglio.Range("C" & Riga)
Worksheets(result_sheet).Range("D" & Riga_Tot) = Foglio.Range("D" & Riga)
Worksheets(result_sheet).Range("E" & Riga_Tot) = Foglio.Range("E" & Riga)
Worksheets(result_sheet).Range("F" & Riga_Tot) = Foglio.Range("F" & Riga)
Worksheets(result_sheet).Range("G" & Riga_Tot) = Foglio.Range("G" & Riga)
Worksheets(result_sheet).Range("H" & Riga_Tot) = Foglio.Range("H" & Riga)
Worksheets(result_sheet).Range("I" & Riga_Tot) = Foglio.Range("I" & Riga)
Riga = Riga + 1
Riga_Tot = Riga_Tot + 1
Wend
End If
Next Foglio
End Sub