Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

copia dati da cartelle excel chiuse

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

copia dati da cartelle excel chiuse

Postdi gennaro81 » 23/02/10 22:13

salve a tutti
avrei bisogno del vostro aiuto per poter risolvere il mio problema.
vi descrivo la mia necessità:
-ogni mese salvo in una cartella (non di excel) dei file di excel che hanno come nome un numero progressivo,il quale si azzera una volta all'anno ed il cui numero in una cartella non può essere definito: es x la cartella "gennaio" avrà 30 files, da 1a29, la cartella ''febbraio'' ne avrà 15 da 31 a 44....
-per ogni file che salvo nelle cartelle mensili devo estrarre i valori che si trovano in delle celle precise(le celle sono 7 in ordine sparso) e devo riportarli in un nuovo file excel in cui i dati estratti da un file devono disporsi sulla stessa riga

mi servirebbe quindi un programma che sia capace di capire da solo quanti siano i files di excel da cui estrarre i dati e disporli sulla stessa riga

spero di essere stato chiaro nella mia necessità

Ps: l'ultimo appunto è quello che il programma dovrebbe non aprire i vari files di excel per poter estrarre i dati

è possibile o troppo complicato???
gennaro81
Utente Junior
 
Post: 13
Iscritto il: 23/02/10 21:30

Sponsor
 

Re: copia dati da cartelle excel chiuse

Postdi Flash30005 » 23/02/10 22:36

Ciao Gennaro81 e benvenuto nel forum

Non c'è nulla di complcato in quello che chiedi ma...
Ti faccio una domanda
se i file si dovessero aprire ma tu non te ne accorgi minimamente cosa comporta?

Ciao

P.s. dovresti almeno pubblicare qualche dato in più tipo:
percorso dei file-dati
celle-origine interessate
celle-destinazione
meglio se pubblicassi il tuo foglio finale e qualche foglio di dati origine specificando dove si trovano
Una macro "non si inventa" certe coordinate ;)
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copia dati da cartelle excel chiuse

Postdi gennaro81 » 24/02/10 00:00

ciao flash
di nome e di fatto! ti ringrazio in anticipo per essere corso in soccorso.
allora se non me ne accorgo mi va bene lo stesso
poi
i files sono in C:\Users\Gennaro\Desktop\Gennaio\
nella cartella gennaio ci saranno i files che avranno come nome un numero che sarà progressivo
le celle origine -celle destinazione
C16 in A1
C3 in B1
I3 in C1
M26 in D1
N26 in E1
F26 in F1
V6 in G1
man mano però che si salvano i files excel le righe delle celle di destinazione aumenteranno in modo progressivo in modo da formare una lista.
il file di destinazione è in C:\Users\Gennaro\Desktop\produzione-mensile
il nome del file di destinazione è statistiche-mensili

spero di essere stato esauriente
gennaro81
Utente Junior
 
Post: 13
Iscritto il: 23/02/10 21:30

Re: copia dati da cartelle excel chiuse

Postdi Flash30005 » 24/02/10 01:03

Volevo chiederti una cosa
ammettendo che oggi scansioniamo le cartelle Gennaio e Febbraio con i file all'interno di Desktop (ti consiglio cambiare percorso: il desktop non è una cartella di archiviazione file)
a fine mese febbraio si saranno aggiunti altri file di febbraio e rieseguiamo il processo come facciamo a non riprocessare i file già processati? (di gennaio e febbraio?)
Ci sono due soluzioni
1) i file processati saranno spostati in rispettive sottocartelle denominate Archivio e questi file non verranno più processati
oppure
2) ogni volta "ripuliamo" il file statistiche e lo riempiamo di nuovo ripartendo dal primo file di gennaio fino all'ultimo file esistente.

Ultima domanda
I fogli contenenti i dati-origine hanno un nome particolare oppure si chiamano tutti "Foglio1"?

Fai sapere
Ciao

P.s. La numerazione dei file così eseguita e addirittura con percorso alfabetico per mese dove Aprile viene prima di Gennaio rende più complessa la macro perché immagino che i fogli debbano essere processati in ordine cronologico e non in ordine sparso vero?
Potresti rinominare le cartelle con un numero tipo 201001 per gennaio e 201002 per febbraio etc etc? Anche perché il prossimo anno come farai?
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copia dati da cartelle excel chiuse

Postdi Flash30005 » 24/02/10 02:42

Allora molti problemi sono stati risolti (anche il problema dei mesi) e la macro qui sotto fa quello che ti serve ma....
Devi rinominare tutti i file-dati rendendoli adatti a creare un elenco cronologico perché il file 1.xls e 101.xls vengono prima di 2.xls o 20.xls etc
quindi supponendo che in un anno non supererai i 999 file dovrai fare in maniera che il nome dei file sia di tre cifre
001.xls
002.xls
003.xls
030.xls
087.xls
099.xls
100.xls
130.xls
etc

e mettere tutte le cartelle dei mesi contenenti i file-dati nella cartella "Gennaro" nella Root di C:\
in maniera da avere un percorso tipo
C:\Gennaro\Gennaio
C:\Gennaro\Febbraio
C:\Gennaro\Marzo
...
C:\Gennaro\Dicembre
Invece di averle sul Desktop

A questo punto potrai copiare l'intero programma e incollare nel modulo del file "Statistiche-Mensili.xls" che potrà essere ovunque tranne che nelle cartelle dei mesi (potrà essere posizionato anche nella cartella "Gennaro")

Codice: Seleziona tutto
Public Percorso As String, I, Passo As Integer, f, VettM(12) As String
Sub AvviaProgramma()
Application.ScreenUpdating = False
Application.Calculation = xlManual
I = 0
Passo = 0
Call DimenVEttM
ChDrive "C"
Worksheets("ElencoA").Select
Range("A1").Select
For PC = 1 To 12
Percorso = "C:\Gennaro\" & VettM(PC) & "\"
Trova Direct:=Percorso, Estens:="*.xls", Inicell:=ActiveCell
Next PC
Call CompilaStat
Worksheets("Foglio1").Select
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Sub Trova(Direct As String, Estens As String, Inicell As Range)
  If Passo = 0 Then I = 0
  ChDir Direct
  f = Dir(Estens)
  If f = "" Then Exit Sub
  While f <> ""
    I = I + 1
    Inicell(I) = f
    f = Dir
    Passo = 1
  Wend
End Sub
Sub CompilaStat()
URS = Workbooks("Statistiche-Mensili.xls").Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
If Workbooks("Statistiche-Mensili.xls").Worksheets("Foglio1").Range("A1").Value <> "" Then URS = Workbooks("Statistiche-Mensili.xls").Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row + 1
URE = Workbooks("Statistiche-Mensili.xls").Worksheets("ElencoA").Range("A" & Rows.Count).End(xlUp).Row
Call DimenVEttM
For PC = 1 To 12
For D = URS To URE
FXLS = Workbooks("Statistiche-Mensili.xls").Worksheets("ElencoA").Range("A" & D).Value
Percorso = "C:\Gennaro\" & VettM(PC) & "\"
If Dir(Percorso & FXLS) = "" Then GoTo saltaF
Workbooks.Open Filename:=Percorso & FXLS
URR = Workbooks("Statistiche-Mensili.xls").Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
If Workbooks("Statistiche-Mensili.xls").Worksheets("Foglio1").Range("A1").Value <> "" Then URR = Workbooks("Statistiche-Mensili.xls").Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row + 1
    Workbooks("Statistiche-Mensili.xls").Worksheets("Foglio1").Range("A" & URR).Value = Workbooks(FXLS).Worksheets("Foglio1").Range("C16").Value
    Workbooks("Statistiche-Mensili.xls").Worksheets("Foglio1").Range("B" & URR).Value = Workbooks(FXLS).Worksheets("Foglio1").Range("C3").Value
    Workbooks("Statistiche-Mensili.xls").Worksheets("Foglio1").Range("C" & URR).Value = Workbooks(FXLS).Worksheets("Foglio1").Range("I3").Value
    Workbooks("Statistiche-Mensili.xls").Worksheets("Foglio1").Range("D" & URR).Value = Workbooks(FXLS).Worksheets("Foglio1").Range("M26").Value
    Workbooks("Statistiche-Mensili.xls").Worksheets("Foglio1").Range("E" & URR).Value = Workbooks(FXLS).Worksheets("Foglio1").Range("N26").Value
    Workbooks("Statistiche-Mensili.xls").Worksheets("Foglio1").Range("F" & URR).Value = Workbooks(FXLS).Worksheets("Foglio1").Range("F26").Value
    Workbooks("Statistiche-Mensili.xls").Worksheets("Foglio1").Range("G" & URR).Value = Workbooks(FXLS).Worksheets("Foglio1").Range("V6").Value
Workbooks(FXLS).Close savechanges:=False
saltaF:
Next D
Next PC
End Sub
Sub DimenVEttM()
VettM(1) = "Gennaio"
VettM(2) = "Febbraio"
VettM(3) = "Marzo"
VettM(4) = "Aprile"
VettM(5) = "Maggio"
VettM(6) = "Giugno"
VettM(7) = "Luglio"
VettM(8) = "Agosto"
VettM(9) = "Settembre"
VettM(10) = "Ottobre"
VettM(11) = "Novembre"
VettM(12) = "Dicembre"
End Sub


Poi creerai un pulsante sul foglio1 che avvia la macro "AvviaProgramma"

Fai sapere
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copia dati da cartelle excel chiuse

Postdi gennaro81 » 24/02/10 08:56

caro flash
innanzitutto ti ringrazio infinitamente!!!!
sono entusiasta e ansioso di provare il programma.
per quanto riguarda i tuoi dubbi:
- le cartelle di archiviazione mensile devono essere conservate per 3 anni quindi i files necessitano di essere archiviati e processati una sola volta,cioè a fine mese
-concordo con la numerazione dei files,001 in poi..
ora corro a provare il programma spero, data la mia ignoranza in materia di saperlo 'far girare'

grazie milleeeeeeeeeeeeee
gennaro81
Utente Junior
 
Post: 13
Iscritto il: 23/02/10 21:30

Re: copia dati da cartelle excel chiuse

Postdi gennaro81 » 24/02/10 10:52

flash allora in primis mi scuso della mia ignoranza in materia e ti chiedo di seguirmi passo passo:
all'interno del file statistiche-mensili dal menu strumenti, macro, virtual basic editor mi appare la finestra del VB e cliccando sul foglio mi appare il foglio del codice:incollo il codice che mi hai invitato , clicco sul simbolo play(esegui sub/userform) mi esce una finestra dove ci sono 3 macro (avvioprogramma,compila stat, dimenvettm)
cliccando su avvio programma mi da un errore:
"errore di compilazione:costanti, stringhe di lunghezza fissa, matrici,tipi definiti dall'utente e istruzioni Declare non ammessi come membri Public di moduli di oggetto" e mi evidenzia nella prima riga del codice VettM(12) as a string

come mi devo comportare?

spero di non arrecarti troppo fastidio e sono consapevole che molte cose che per te sono banali sono ostacoli insormontabili per la mia ignoranza in materia
gennaro81
Utente Junior
 
Post: 13
Iscritto il: 23/02/10 21:30

Re: copia dati da cartelle excel chiuse

Postdi Flash30005 » 24/02/10 11:24

Innanzitutto è bene sapere quale versione di office hai (il programma funziona perfettamente con Office2003, con 2007 non l'ho testato).
Poi dal foglio1 del file "Statistiche-Mensili.xls"
premi contemporaneamente i tasti ALT e F11
una volta in VBA vai sul menu "Inserisci" > Modulo
e sulla finestra di destra incolli l'intero codice.
Devi aver creato una cartella "Gennaro" in C:\ nella quale dovrai inserire tutte le cartelle dei mesi con all'interno i file numerati con tre cifre come già detto.
A questo punto puoi lanciare la prima macro "AvviaProgramma" non altre macro altrimenti andrà in errore
per avviare questa macro devi mettere il cursore lampeggiante del mouse all'interno di questa dicitura
Codice: Seleziona tutto
Sub AvviaProgramma()
Application.ScreenUpdating = False
Application.Calculation = xlManual
...
...

e premi F8 per il debug passo-passo o Play per eseguire l'intera macro.

Ti ricordo che i fogli contenente i dati dovranno chiamarsi tutti "Foglio1" come pure un foglio di "Statistiche-Mensili.xls"

IMPORTANTISSIMO: Un foglio di "Statistiche-Mensili.xls" deve chiamarsi "ElencoA" (avevo dimenticato di dirlo) :oops:

Fai sapere
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copia dati da cartelle excel chiuse

Postdi gennaro81 » 24/02/10 12:13

In primis office e' 2003
Poi i files 001,002 ....devo porli direttamente in :C\Gennaro o in :C\Gennaro\Gennaio e quindi modificare il codice mensilmente???
Ho fatto girare il codice e mi da errore di run time 76 ''impossibile trovare il percorso'' in corrispondenza del 3rigo della sub Trova: ChDir Direct
Devo modificare qualcosa???
gennaro81
Utente Junior
 
Post: 13
Iscritto il: 23/02/10 21:30

Re: copia dati da cartelle excel chiuse

Postdi Flash30005 » 24/02/10 13:09

I file devono rimanere ognuno nella cartella mese appartenenza da 001 a 029 (credo) nella cartella di "Gennaio "all'interno della cartella "Gennaro" es.
C:\Gennaro\Gennaio\(i file) 001.xls etc
sempre all'interno della cartella "Gennaro" avrai la cartella "Febbraio" con i suoi file

In pratica non ho modificato nulla rispetto ai file e cartelle di appartenenza solo che le cartelle mese saranno dentro la cartella "Gennaro" invece che sul Desktop

Se non ti funzionerà ancora, stasera ti invierò i miei file e proverai su quelli.

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copia dati da cartelle excel chiuse

Postdi gennaro81 » 24/02/10 16:21

OK OK
ti esprimo i miei dubbi solo per capire;
in corrispondenza della 9°riga

Percorso = "C:\Gennaro\" & VettM(PC) & "\"

il percorso resta :C\Gennaro o devo mettere anche la cartella mese di volta in volta?
il numero dei file in ogni cartella mensile non è mai definito,può variare di mese in mese:può essere un problema?

flash io non mi stancherò di ringraziarti ogni volta che ti scrivo
gennaro81
Utente Junior
 
Post: 13
Iscritto il: 23/02/10 21:30

Re: copia dati da cartelle excel chiuse

Postdi Flash30005 » 24/02/10 16:54

Tu non devi toccare assolutamente il codice macro
La macro è fatta per trovare tutti i file che ci sono nelle dodici cartelle aventi come nome il mese
I file possono essere da zero a 1.000 o 10.000 ovunque distribuiti (10 a gennaio, 300 a febbraio, 1.000 a marzo) la macro lavorerà sempre,
l'importante è non superare le 65.000 righe (=a 65.000 file :eeh: ) del foglio di excel

Quindi devi solo mettere le cartelle mese nella cartella Gennaro sulla Root di C:\

e non toccare la macro.

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copia dati da cartelle excel chiuse

Postdi gennaro81 » 24/02/10 18:59

ok flash
ho provato a far girare la macro con f8 ma in corrispondenza del ciclo while della sub trova sembra andare in loop e poi mi da sempre l errore di run time
aspetto tue indicazioni
gennaro81
Utente Junior
 
Post: 13
Iscritto il: 23/02/10 21:30

Re: copia dati da cartelle excel chiuse

Postdi Flash30005 » 25/02/10 08:47

Tagliamo la testa al toro

1) Rinomina la tua cartella Gennaro che hai sulla Root di C:\
(altrimenti andrai a sovrascrivere i tuoi file)
2) Scarica questo file
3) Estrai l'eseguibile "Gennaro.exe" dall'archivio
4) Lancia Gennaro.exe (con doppio click sul file)
5) Vai nella cartella C:\Gennaro\ e avvia il file Statistiche-Mensili
6) Premi sul pulsante AVVIA
7) Guarda il risultato

Se tutto è ok
1) Cancella i file contenuti nelle cartelle Gennaio (6 file), Febbraio (1 file), Aprile (1 file)
2) Inserisci tutti i tuoi file suddivisi per mese
3) Pulisci il foglio1 di Statistiche-Mensili e ripremi il pulsante Avvia

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copia dati da cartelle excel chiuse

Postdi gennaro81 » 25/02/10 10:36

flashhhhhhhhhhhhhhhhh va alla grande!!!!!!!!!!
ho dato uno sguardo e avevo fatto un errore ignobile di cui quasi mi vergogno di rivelarti:non avevo messo in :C\Gennaro le cartelle di tutti i mesi.....avevo messo solo quella di gennaio.

cmq sto customizzando il codice e ci sto riuscendo(del tipo mi sono accorto che mi servivano altri dati quindi ho immesso altre celle d origine)
ora però dovrei far partire la compilazione dell'elenco non dalla prima riga ma dalla 4°:ho provato a sostituire A4 al posto di A1 ma non c è nessuna variazione
Potresti darmi un ultimo aiutino

Ti ringrazio infinitamenteeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
gennaro81
Utente Junior
 
Post: 13
Iscritto il: 23/02/10 21:30

Re: copia dati da cartelle excel chiuse

Postdi Flash30005 » 25/02/10 10:43

Potrei modificare la macro ma credo non ce ne sia bisogno perché è sufficiente che tu scriva qualsiasi cosa nelle celle A1, A2 e A3 e avrai l'elenco con inizio dalla riga 4

Fai sapere
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copia dati da cartelle excel chiuse

Postdi gennaro81 » 28/02/10 23:59

flash innanzitutto ti ringrazio per la tua totale disponibilità!

per quanto riguarda il mio ultimo problema(far slittare l'inizio della lista delle statistiche mensili dalla cella A1 ad A4) non sembra che la lista comincia dalla prima cella vuota: le prime 3 righe di valori non appaiono.
dove posso modificare nella macro l inizio della lista dalla cella A4?
gennaro81
Utente Junior
 
Post: 13
Iscritto il: 23/02/10 21:30

Re: copia dati da cartelle excel chiuse

Postdi Flash30005 » 01/03/10 01:23

Fai questa prova
Cancella le tutte le righe dei test precedenti
Inserisci qualsiasi cosa in A1 es.:
AAAA
e in A3 inserisci
AAAA
e lancia la macro con il pulsante

é la cosa più semplice da fare

fai sapere

Ciao

Ps. Non devi occupare solo la cella A3 altrimenti non funziona, devi occupare, come dicevo, anche la cella A1
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: copia dati da cartelle excel chiuse

Postdi gennaro81 » 01/03/10 13:03

FLASH
ho fatto come te dicevi ma mi salta i dati delle prime 3 riga e non shifta la lista verso il basso.
aspetto tue istruzioni
gennaro81
Utente Junior
 
Post: 13
Iscritto il: 23/02/10 21:30

Re: copia dati da cartelle excel chiuse

Postdi Flash30005 » 02/03/10 01:51

Prova questo file

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "copia dati da cartelle excel chiuse":


Chi c’è in linea

Visitano il forum: Nessuno e 15 ospiti