Condividi:        

Copiare e aggiungere dati da altri fogli

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

Copiare e aggiungere dati da altri fogli

Postdi genik83 » 07/02/13 22:34

Buonasera a tutti,
sono nuovo del forum e del mondo macro (ho da poco iniziato a leggere un testo sull'argomento).
Vi espongo il mio problema:

ho una serie di n file Excel, contenuti in una cartella chiamata 01, strutturati come il seguente:
Immagine

la lunghezza delle prime due colonne è variabile, arriva anche a 2000 righe.

Avrei bisogno di una macro che mi copiasse, in un unico foglio, il contenuto delle colonne A e B a partire dalla riga 4 in giù.
In caso dovrei anche, se possibile, inserire una terza colonna C con il nome del file dal quale provengono, ad esempio:

35621300 0308xxxxxxxxx485 01_HERA_22.3


Grazie per l'aiuto!
genik83
Utente Junior
 
Post: 19
Iscritto il: 07/02/13 22:19

Sponsor
 

Re: Copiare e aggiungere dati da altri fogli

Postdi Flash30005 » 08/02/13 00:11

Ciao Genik83 e benvenuto nel Forum

L'immagine da te inserita non è visibile potresti usare questo server host per le immagini

Nel frattempo potresti leggere la soluzione in questo link

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Copiare e aggiungere dati da altri fogli

Postdi Anthony47 » 08/02/13 00:23

Ciao genik83, benvenuto anche da parte mia.
Mutuando quanto appena suggerito a cattivick (la discussione segnalata anche da Flash, vedi viewtopic.php?f=26&t=98337&p=565249#p565243), inserisci questa macro nel file in cui vorresti creare il riepilogo:
Codice: Seleziona tutto
Sub ppp()
myDir = "C:\Users\Utente\Directory\Subdir\"   '<<< La tua dir, con \ finale
myFile = Dir(myDir & "*.xls*")
Do While myFile <> ""
If myFile = ThisWorkbook.Name Then GoTo nextF
    Workbooks.Open (myDir & myFile)
    Sheets("Foglio1").Select                  '<<< Il VERO FOGLIO da cui copiare
    LastA = Cells(Rows.Count, "A").End(xlUp).Row
    ThisA = ThisWorkbook.ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
    Range("A4:B" & LastA).Copy _
        Destination:=ThisWorkbook.ActiveSheet.Cells(ThisA + 1, "A")
    ThisWorkbook.ActiveSheet.Cells(ThisA + 1, "C").Resize(LastA - 3, 1) = myFile
skipF:
ActiveWorkbook.Close savechanges = False
nextF:
myFile = Dir
Loop
'
End Sub
Da Excel, premi Alt-F11 per aprire l' editor delle macro; menu /Inserisci /Modulo; copia il codice e inseriscilo nel frame di dx del "modulo" appena creato".
Personalizza le istruzioni marcate <<<, poi esegui la macro PPP.

Fai sapere, ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare e aggiungere dati da altri fogli

Postdi genik83 » 08/02/13 08:26

Buongiorno e grazie per le risposte.
Innanzitutto ripropongo l'immagine

http://imageshack.us/photo/my-images/7/immaginenoy.png/

Ho provato la soluzione proposta da Anthony47 però mi esce un errore di run-time 1004.
Posso dirvi che i fogli si chiamano tutti Foglio 1 e che la directory è la seguente: C:\Users\argirop\Desktop\DA PORTALE
genik83
Utente Junior
 
Post: 19
Iscritto il: 07/02/13 22:19

Re: Copiare e aggiungere dati da altri fogli

Postdi Anthony47 » 08/02/13 08:40

Su quale riga hai quell' errore?
(vai in debug, poi fai uno screenshot in cui si legga il box del messaggio e la riga evidenziata sul codice).

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare e aggiungere dati da altri fogli

Postdi genik83 » 08/02/13 08:56

Non evidenzia nessuna riga, ecco cosa ho scritto e cosa risulta dopo che premo F5.

http://imageshack.us/photo/my-images/71 ... e2cft.png/
genik83
Utente Junior
 
Post: 19
Iscritto il: 07/02/13 22:19

Re: Copiare e aggiungere dati da altri fogli

Postdi Anthony47 » 08/02/13 08:59

Per ora posso solo dire che non hai seguito le istruzioni:
Da Excel, premi Alt-F11 per aprire l' editor delle macro; menu /Inserisci /Modulo; copia il codice e inseriscilo nel frame di dx del "modulo" appena creato.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare e aggiungere dati da altri fogli

Postdi genik83 » 08/02/13 09:36

Effettivamente è vero, pensavo fosse la stessa cosa di un copia e incolla e ho fatto così.
Ho seguito le tue istruzioni funziona perfettamente.
Grazie mille, mi hai risparmiato un sacco di lavoro.
Potresti dirmi la differenza con un copia e incolla normale una volta che viene premuto alt+f11 rispetto all'inserisci modulo?
genik83
Utente Junior
 
Post: 19
Iscritto il: 07/02/13 22:19

Re: Copiare e aggiungere dati da altri fogli

Postdi genik83 » 08/02/13 09:37

E poi anche se puoi indicarmi qualche sito utile o guida per principianti per la realizzazione delle macro.
genik83
Utente Junior
 
Post: 19
Iscritto il: 07/02/13 22:19

Re: Copiare e aggiungere dati da altri fogli

Postdi Anthony47 » 08/02/13 23:56

Come vedi non diamo istruzioni a caso :D :D
La macro che ti ho suggerito e' una macro standard, va in un "Modulo standard" (quello che si crea con Menu /Inserisci /Modulo); nel modulo intestato "Foglio1" ci vanno altre macro, tipo quelle "di evento" o di gestione di controlli tipo userform o activex.

Un buon modulo per iniziare e' quello di registrare qualche macro mentre esegui sul workbook operazioni sempre piu' complesse; poi vedi come sono state tradotte, leggi sull' help on line del vba il significato di ognuna dei pezzi dell' istruzione, e provi a modificare il codice ottenuto per avere comportamenti diversi.
Per avviare il registratore di macro: Menu /Strumenti /Macro /Registra nuova macro (/Interrompi registrazione per fermare). Per vedere il codice prodotto: Alt-F8, seleziona il nome della macro da visualizzare, premi Modifica; in questo modo aprirai l' editor delle macro direttamente al Modulo che contiene la macro.

In una grande libreria troverai certamente un angolo dedicato alla letteratura tecnica con qualche buon testo per cominciare; poi migliorerai con un po' di applicazione...

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare e aggiungere dati da altri fogli

Postdi genik83 » 11/02/13 12:23

Buongionro,
mi servirebbe aggiungere al codice, che va benissimo, una quarta colonna che mi riporti, per ogni riga, il dato che si trova nella cella C2 del foglio di competenza dal quale vengono estratti i dati.
genik83
Utente Junior
 
Post: 19
Iscritto il: 07/02/13 22:19

Re: Copiare e aggiungere dati da altri fogli

Postdi Anthony47 » 11/02/13 18:53

Prova da aggiungere, nella macro attuale, la riga marcata <<< (le altre due righe sono mostrate per indicare la posizione):
Codice: Seleziona tutto
    ThisWorkbook.ActiveSheet.Cells(ThisA + 1, "C").Resize(LastA - 3, 1) = myFile
    ThisWorkbook.ActiveSheet.Cells(ThisA + 1, "D").Resize(LastA - 3, 1) = Range("C2").Value  '<<<
skipF:

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare e aggiungere dati da altri fogli

Postdi genik83 » 12/02/13 09:26

Grazie mille, è perfetta.
Buona giornata.
genik83
Utente Junior
 
Post: 19
Iscritto il: 07/02/13 22:19


Torna a Applicazioni Office Windows


Topic correlati a "Copiare e aggiungere dati da altri fogli":


Chi c’è in linea

Visitano il forum: Gianca532011 e 62 ospiti