Condividi:        

[Excel] recupero dati più file

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

[Excel] recupero dati più file

Postdi ripperhack » 29/05/12 11:33

ciao a tutti, avrei la necessità di creare un file in excel utilizzando VB per fare statistiche ma purtroppo non so da dove cominciare...

scenario:
ho 20 file xls tutti con la stessa identica struttura e con dei campi editabili dall'utente attraverso dei menù a tendina (convalida dati). Ai fini statistici avrei bisogno di creare un file che mi vada a pescare queste informazioni per poi creare dei grafici...

esempio pratico:
nel file 1.xls l'utente può scegliere dal menù a tendina nella cella A3 il proprio sesso e nella cella B7 il proprio colore preferito sempre da menù a tendina... tutto uguale per il file 2.xls... 3.xls e così via...

nel mio file statistico dovrei pescare la cella A3 e B7 in modo da capire su 20 file quanti sono maschi o femmina e quanti hanno scelto un colore... chiedo troppo ??

grazie
ripperhack
Utente Junior
 
Post: 11
Iscritto il: 29/05/12 11:26

Sponsor
 

Re: [Excel] recupero dati più file

Postdi patel » 29/05/12 12:11

allega il file risultante in modo da vedere come vuoi disporre i dati per fare i grafici
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel] recupero dati più file

Postdi ripperhack » 29/05/12 12:32

sono ancora fermo alla creazione del file risultante... devo "recuperare" le informazioni dai file da 1 a 20.xls... i grafici sono il passo successivo :)
ripperhack
Utente Junior
 
Post: 11
Iscritto il: 29/05/12 11:26

Re: [Excel] recupero dati più file

Postdi patel » 29/05/12 12:50

lo so che sei fermo, ma hai idea di come lo verresti organizzato ? oppure lo faccio io come mi pare ?
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel] recupero dati più file

Postdi ripperhack » 29/05/12 12:59

la mia idea era di avere un elenco dei dati... successivamente applico il filtro alla colonna e vedo i risultati in base al sesso o colore... (per ora lasciamo perdere i grafici)... cmq impostalo come meglio credi (ti ringrazio tantissimo, non immagini il lavoro che mi stai risparmiando... :) ) e poi vediamo
ripperhack
Utente Junior
 
Post: 11
Iscritto il: 29/05/12 11:26

Re: [Excel] recupero dati più file

Postdi patel » 29/05/12 13:41

prova questa macro
Codice: Seleziona tutto
Sub Apri_files()
Dim nomefile
percorso = Application.ActiveWorkbook.Path
riga = 2
For i = 1 To 4
    nomefile = percorso & "\" & i & ".xls"
    Workbooks.Open Filename:=nomefile
    sesso = Range("A3").Value
    colore = Range("B7").Value
    ActiveWorkbook.Close
    Cells(riga, 1) = sesso
    Cells(riga, 2) = colore
    riga = riga + 1
Next i
End Sub
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel] recupero dati più file

Postdi ripperhack » 29/05/12 14:27

ciao, grazie per il supporto... cmq questa macro funziona solo se il file si chiama 1.xls

è possibile modificare il codice in modo che apra tutti i file .xls indipendentemente dal nome ?? (ma ovviamente le stesse celle?)

grazie ancora
ripperhack
Utente Junior
 
Post: 11
Iscritto il: 29/05/12 11:26

Re: [Excel] recupero dati più file

Postdi ricky53 » 29/05/12 15:25

Ciao,
nel foglio2, colonna "A" dalla riga 2 in giù, scrivi i nomi dei file che vuoi aprire (senza ".xls") e poi esegui la seguente macro
Codice: Seleziona tutto
Option Explicit

Sub Apri_files()
    Dim NomeFile As String, Riga As Integer, Percorso As String, I As Integer, UR As Integer
    Dim Sesso As String, Colore As String
    Percorso = Application.ActiveWorkbook.Path
    Riga = 2
    UR = Sheets("Foglio2").Cells(Rows.Count, 1).End(xlUp).Row
    For I = 2 To UR
        NomeFile = Percorso & "\" & Sheets("Foglio2").Cells(I, 1) & ".xls"
        Workbooks.Open Filename:=NomeFile
        Sesso = Range("A3").Value
        Colore = Range("B7").Value
        ActiveWorkbook.Close
        Sheets("Foglio1").Cells(Riga, 1) = Sesso
        Sheets("Foglio1").Cells(Riga, 2) = Colore
        Riga = Riga + 1
    Next I
End Sub


Si può fare che la macro vada a leggere i file presenti in un certo percorso e li apra automaticamente ma ... andiamo avanti passo passo.

Consiglio: le variabili vanno tutte definite e ... conviene avere "Option Explicit" che ti garantisce l'utilizzo corretto delle variabili e ... prova
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] recupero dati più file

Postdi patel » 29/05/12 16:57

ripperhack ha scritto:ciao, grazie per il supporto... cmq questa macro funziona solo se il file si chiama 1.xls
funziona se i file hanno nomi del tipo 1.xls 2.xls 3.xls 4.xls ..... ecc come avevi indicato tu, basta modificare
For i = 1 To 4 in For i = 1 To 20 o il numero che desideri
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel] recupero dati più file

Postdi ricky53 » 29/05/12 17:18

Ciao Patel,
probabilmente Ripper ha dei nomi file che non sono numeri ed immagino abbia semplificato, descrivendo il suo quesito, dicendoci che i nomi erano 1.xls, 2.xls ma ... attendiamo la sua risposta.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] recupero dati più file

Postdi patel » 29/05/12 17:30

d'altra parte aprire tutti i file della cartella implica anche riaprire il documento attivo, a questo punto occorre essere più precisi con le specifiche del progetto.
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel] recupero dati più file

Postdi ricky53 » 29/05/12 17:55

Ciao,
ovviamente ci sarà il controllo per non riaprire il file aperto inizialmente e ... ma attendiamo lui ed i suoi chiarimenti sulle effettive necessità.

A ritrovarci qui
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] recupero dati più file

Postdi ripperhack » 30/05/12 06:52

si confermo per semplificare ho scritto 1...2...3... ma in realtà non posso sapere in anticipo i nomi dei file in quanto è l'utente che li genera partendo da un modello vuoto... l'utente può leggere il modello ma non sovrascriverlo e quando l'ha compilato fa un salva con nome in una cartella specifica quindi non posso avere il controllo sul nome del file... se riesco a fare questo lavoro sarà l'utente ad eseguire la macro per fare le sue statistiche...

ci vorrebbe del codice che recuperi le celle indicate (A3 e B7) dagli *.xls in una determinata cartella
ripperhack
Utente Junior
 
Post: 11
Iscritto il: 29/05/12 11:26

Re: [Excel] recupero dati più file

Postdi patel » 30/05/12 09:32

prova questa modificando adeguatamente il percorso

Codice: Seleziona tutto
Sub ApriDaCartella()
Dim riga As Integer, nomefile As String, f, sesso As String, colore As String
pth = "C:\Users\andrea\Desktop\excel\ApriFilePrelevaDati\"
nomedocattivo = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
f = Dir(pth)
riga = 2
Do While f <> ""
    nomefile = pth & f
    If GetAttr(nomefile) <> vbDirectory And nomefile <> nomedocattivo Then
        nomefile = pth & f
        Workbooks.Open Filename:=nomefile
        sesso = Range("A3").Value
        colore = Range("B7").Value
        ActiveWorkbook.Close
        Cells(riga, 1) = sesso
        Cells(riga, 2) = colore
        riga = riga + 1
    End If
    f = Dir
Loop
End Sub
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel] recupero dati più file

Postdi ripperhack » 30/05/12 10:48

:lol: :lol: :lol:
funziona... patel sei ufficialmente il mio idolo... ho cambiato il nome dei file (pippo, mario, pluto) e pesca tutti i dati... una piccola precisazione se possibile...

quando lancio la macro pesca dai file (pippo, mario e pluto) che per qualche motivo quando si chiudono mi chiedono di salvare le modifiche (anche se non sono state fatte) è possibile in automatico che non mi chieda questo salvataggio ??

grazie anche a ricky75
ripperhack
Utente Junior
 
Post: 11
Iscritto il: 29/05/12 11:26

Re: [Excel] recupero dati più file

Postdi ripperhack » 30/05/12 11:12

altra precisazione...

questa stringa del tuo codice:
"Dim riga As Integer, nomefile As String, f, sesso As String, colore As String" se io aggiungessi dei campi tipo numero di telefono (che ho aggiunto sotto) lì devo aggiungere "telefono As String" oppure qualcosa di diverso (tipo As Integer giusto?) essendo un numero ?? (scusa la domanda che può risultare banale...) cmq se sei del nord italia ci vediamo e ti pago da bere :lol: per l'aiuto che mi stai dando ;)
ripperhack
Utente Junior
 
Post: 11
Iscritto il: 29/05/12 11:26

Re: [Excel] recupero dati più file

Postdi ripperhack » 30/05/12 11:32

ho risolto da solo cercando i google la chiusura automatica senza salvataggio aggiungendo al codice:

"ActiveWorkbook.Close False" spero sia corretto... mi resta solo da capire se sono obbligato a dichiarare il tipo di variabile che utilizzo sotto (per altri campi che "pesco" tipo il telefono) oppure se non le dichiaro come vengono considerate... nel mio caso avrei o stringhe di testo o numeri
ripperhack
Utente Junior
 
Post: 11
Iscritto il: 29/05/12 11:26

Re: [Excel] recupero dati più file

Postdi ricky53 » 30/05/12 11:56

Ciao,
grazie per avermi ringiovanito 75 --> 53 !!!

Ho visto che hai risolto ti invio comunque quanto avere predisposto perchè ho aggiunto un controllo sul tipo di file che viene aperto ---> se nel percorso ci sono altri file non excel verrebbero aperti comuqnue ed avresti dati "SPORCHI" o errori.

Ti consiglio di dichiarare sempre le varibili vedi l'istruzione "Option Explicit" che ho inserito io.

Il telefono lo definirei String ----> contralla le celle nei vari file come sono gestite

Ecco la mia modifica al codice di Patel
Codice: Seleziona tutto
Option Explicit ' <<============= Aggiunta per il controllo sulla definizione delle varibili
Option Compare Text ' <<============= Aggiunta per non rendere "Case Sentive" i confronti tra stringhe

Sub ApriDaCartella()
    Dim riga As Integer, nomefile As String, f, sesso As String, colore As String, NomeDocAttivo As String, Pth As String
    Pth = "D:\TEMP\"
    NomeDocAttivo = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
    f = Dir(Pth)
    riga = 2
    Application.DisplayAlerts = False ' <<============= Aggiunta ma superflua
    Do While f <> ""
        nomefile = Pth & f
        If GetAttr(nomefile) <> vbDirectory And nomefile <> NomeDocAttivo _
            And (Right(f, 4) = ".XLS" Or Left(Right(f, 5), 4) = ".XLS") Then ' <<============= Aggiunta per aprire sol file Excel
            nomefile = Pth & f
            Workbooks.Open Filename:=nomefile
            sesso = Range("A3").Value
            colore = Range("B7").Value
            ActiveWorkbook.Close False ' <<============= Questa l'hai Aggiunta TU
            Cells(riga, 1) = sesso
            Cells(riga, 2) = colore
            riga = riga + 1
        End If
        f = Dir
    Loop
    Application.DisplayAlerts = True ' <<============= Aggiunta ma superflua
End Sub
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] recupero dati più file

Postdi ripperhack » 30/05/12 13:03

ops sorry per il nick...

grazie ancora adesso provo anche questo e vedo cosa succede

siete mitici
ripperhack
Utente Junior
 
Post: 11
Iscritto il: 29/05/12 11:26

Re: [Excel] recupero dati più file

Postdi ricky53 » 30/05/12 13:16

Ciao,
mi avevi ringiovanito, e di molto, quindi mi aveva fatto piacere !

Ci trovi QUI per ogni altra esigenza.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "[Excel] recupero dati più file":


Chi c’è in linea

Visitano il forum: Nessuno e 69 ospiti