Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Unire fogli di excel

Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

0
voti

[1] Unire fogli di excel

Messaggioda Foto UtenteMSilvano » 18 lug 2011, 12:05

Ho un file di excel che contiene 92 fogli
ogni foglio ha 3 colonne e 25 righe compilate (una curva di carico giornaliere divisa in ore)
Esempio di un foglio:
Data Ora kW
02-set 1.00 501
02-set 2.00 448
02-set 3.00 450
02-set 4.00 457
02-set 5.00 447
02-set 6.00 447
02-set 7.00 447
02-set 8.00 465
02-set 9.00 496
02-set 10.00 504
02-set 11.00 527
02-set 12.00 529
02-set 13.00 530
02-set 14.00 519
02-set 15.00 524
02-set 16.00 532
02-set 17.00 531
02-set 18.00 526
02-set 19.00 506
02-set 20.00 501
02-set 21.00 503
02-set 22.00 500
02-set 23.00 503
02-set 0.00 505

Come faccio a unire tutti i dati dei 91 fogli in un unico foglio, senza fare copia e incolla? :roll:
Avatar utente
Foto UtenteMSilvano
2.083 1 3 6
Expert
Expert
 
Messaggi: 728
Iscritto il: 3 gen 2011, 10:35

0
voti

[2] Re: Unire fogli di excel

Messaggioda Foto Utentemrc » 18 lug 2011, 13:51

Ciao MSIIvano.

Penso che una delle poche soluzioni sia quella di creare una routine, in ambiente VBA, con ciclo for each che in automatico faccia un copia incolla.

Io però non conosco come poterla implementare.

Un 'altra alternativa potrebbe essere quella di provare questo software.
Da quello che si legge nella recensione può fare quello che cerchi in automatico:

http://www.programmiperpc.com/unire-fog ... excel.html
Avatar utente
Foto Utentemrc
10,5k 6 11 13
Expert EY
Expert EY
 
Messaggi: 4023
Iscritto il: 16 apr 2009, 9:32

0
voti

[3] Re: Unire fogli di excel

Messaggioda Foto UtenteGianluigiSarais » 18 lug 2011, 14:05

Due domande:
- il numero di fogli è 92 o può variare?
- che nomim hanno i fogli da unire? "Sheet 1","Sheet 2", ecc....?
Avatar utente
Foto UtenteGianluigiSarais
58 2
New entry
New entry
 
Messaggi: 51
Iscritto il: 29 gen 2009, 12:27

0
voti

[4] Re: Unire fogli di excel

Messaggioda Foto UtenteMSilvano » 18 lug 2011, 14:25

GianluigiSarais ha scritto:Due domande:
- il numero di fogli è 92 o può variare?
- che nomim hanno i fogli da unire? "Sheet 1","Sheet 2", ecc....?


Direi che può variare...perché oggi devo aggregare 3 mesi (92 fogli)...domani magari 2 o 4....
i fogli in origine si chiamano "lunedì 1 novembre 2010" "martedì 2 novembre 2010 "...ecc..ecc...
ma io per semplicità li ho numerati dall'1 al 92...
Intanto ringrazio anche mrc e vado a vedere il link... :ok:
Avatar utente
Foto UtenteMSilvano
2.083 1 3 6
Expert
Expert
 
Messaggi: 728
Iscritto il: 3 gen 2011, 10:35

1
voti

[5] Re: Unire fogli di excel

Messaggioda Foto UtenteGianluigiSarais » 18 lug 2011, 14:52

Io ti propongo di sfruttre VBA di excel,

Questo è il codice per una routine copia incolla, che preleva i dati dai 92 fogli ("1", "2",ecc....) e li incolonna nel foglio chiamato "Unito":

Sub unisci()
k = 0
Dim Nomefoglio(91) As String 'Array con nomi dei fogli da "1" a "92"

For z = 0 To 91
Nomefoglio(z) = z + 1 ' Inizzializzazione dei nomi nel vettore
Next

For i = 0 To 91
k = i * 3
Sheets(Nomefoglio(i)).Select
Range("a2:c25").Select
Selection.Copy
Sheets("Unito").Select 'Foglio su cui riordinare i dati
Range("a2").Offset(24 * i, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False ' Incolla incollonnati
Range("A1").Select
Next

Range("a1").Select
End Sub

Come te la cavi con VBA?
Poi lo perfezioniamo, ciao.
Avatar utente
Foto UtenteGianluigiSarais
58 2
New entry
New entry
 
Messaggi: 51
Iscritto il: 29 gen 2009, 12:27

0
voti

[6] Re: Unire fogli di excel

Messaggioda Foto UtenteMSilvano » 18 lug 2011, 15:03

GianluigiSarais ha scritto:Come te la cavi con VBA?
Poi lo perfezioniamo, ciao.


Mai usato...so creare macro attraverso il comando Registra nuova macro...vedo cosa riesco a fare... :shock:
Avatar utente
Foto UtenteMSilvano
2.083 1 3 6
Expert
Expert
 
Messaggi: 728
Iscritto il: 3 gen 2011, 10:35

0
voti

[7] Re: Unire fogli di excel

Messaggioda Foto UtenteMSilvano » 18 lug 2011, 15:22

cavolo...5 secondi per incolonnarli, dopo che ho impiegato tutta la mattina per capire come fare.... ||O ||O ||O

Grazie...mi sei stato di grande aiuto...
Ho aperto vba, creato un nuovo modulo e incollato la tua macro...
Lanciata si è piantata mentre cercava il foglio "unito"
creato il foglio, l'ho lanciata, ha copiato tutto fino alla fine, e questo è gia un enorme passo avanti, ma la macro si blocca qua:
Sheets(Nomefoglio(i)).Select

eppure dovrebbe averlo già passato questo punto :roll:
Avatar utente
Foto UtenteMSilvano
2.083 1 3 6
Expert
Expert
 
Messaggi: 728
Iscritto il: 3 gen 2011, 10:35

0
voti

[8] Re: Unire fogli di excel

Messaggioda Foto UtenteGianluigiSarais » 18 lug 2011, 15:33

Ecco qui nascono gli inghippi da perfezionare, a naso penso che si sia fermato perché è andato a cercare fogli che non esistono.
L'ho preparata fissa a 92 fogli, Prova a vedere quanti fogli hai.
Purtroppo non riesco a seguirti in diretta perché sono al lavoro, cerca di darmi i messaggi di errore del debug.
Ciao
Avatar utente
Foto UtenteGianluigiSarais
58 2
New entry
New entry
 
Messaggi: 51
Iscritto il: 29 gen 2009, 12:27

0
voti

[9] Re: Unire fogli di excel

Messaggioda Foto UtenteMSilvano » 18 lug 2011, 16:06

i fogli sono 91, 92 con quello chiamato "unito"...forse mi sono confuso io all'inizio...
L'errore è questo:

Errore di runtime '9':
Indice non incluso nell'intervallo


vado sul debug e mi evidenzia questo: Sheets(Nomefoglio(i)).Select

a questo punto io ho fatto quello che mi serviva...tutto il resto (eliminazione dell'errore) mi serve solo per imparare...quindi fai pure con comodo.... :D
Mi sei stato veramente di aiuto... :ok:
Avatar utente
Foto UtenteMSilvano
2.083 1 3 6
Expert
Expert
 
Messaggi: 728
Iscritto il: 3 gen 2011, 10:35

0
voti

[10] Re: Unire fogli di excel

Messaggioda Foto UtenteGianluigiSarais » 18 lug 2011, 17:03

Allora è semplice bast accorciare da 92 a 91 il campo del vettore.
Excel si arrabbia perché va a cerare il 92esimo foglio, che non esiste.
Quindi basta che nel codice cambi il numero 91 in 90.
Ciao
Avatar utente
Foto UtenteGianluigiSarais
58 2
New entry
New entry
 
Messaggi: 51
Iscritto il: 29 gen 2009, 12:27

Prossimo

Torna a Programmi applicativi: simulatori, CAD ed altro

Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti