Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Copiare dati da altri file excel

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

Re: Copiare dati da altri file excel

Postdi TeUzZz89 » 06/06/13 16:42

Ciao a tutti! Non so perchè ma dopo aver utilizzato il solver e nel riapplicare la seguente macro, questa volta dopo alcuni file mi da errore di run time 9, indice non incluso nell'intervallo e mi sottolinea la seguente riga

.Range("C10").Offset(LL, 0) = Sheets(mySheets(JJ)).Range("GV4").Value

Inoltre, anche se non è un problema, i dati vengono spostati di una riga in giù, però sul codice vi è scritto che dovrebbero stare sulla riga 10.
Non capisco come mai non funzioni perchè avevo provato più volte settimane fa e funzionava perfettamente, ora invece mi dà questo errore. Sono cambiati solo i valori e niente di più.
Vi ho postato i file cosi potete vedere anche voi, è un pò grosso ma è per farvi vedere che dopo il file 7 mi dà questo errore.

File: http://rapidshare.com/files/774687240/test2.rar

Grazie per l'aiuto!!
TeUzZz89
Utente Junior
 
Post: 20
Iscritto il: 10/05/13 03:48

Sponsor
 

Re: Copiare dati da altri file excel

Postdi Anthony47 » 07/06/13 00:06

I file K/C08_2005_2_16.xlsx sono privi del foglio ARindustries; non ho controllato se tutti gli altri sono ok.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare dati da altri file excel

Postdi AMV.77 » 03/11/13 04:18

Buongiorno a tutti.
Avrei bisogno di un aiuto (prezioso), visto che non riesco ad adattare al mio caso le macro suggerite nei precedenti post.
Mi trovo a dover creare, in un unico file Excel, l'elenco di alcuni dei dati contenuti in piú di 2000 files Excel, per una successiva elaborazione statistica.
Per fare chiarezza:
- I files Excel si trovano all'interno di un'unica cartella.
- I files Excel hanno tutti la stessa struttura (piú fogli, il cui nome si mantiene per ogni file).
- I dati che devo estrarre, ed elencare, si trovano sempre in una determinata posizione.

Esempio pratico.

Di ciascuno degli n file, mi servirebbero (ad esempio):
- nel Foglio1, i dati corrispondenti alle celle B7, M8
- nel Foglio2, i dati corrispondenti alle celle J20, Z15
- nel Foglio3, i dati corrispondenti alle celle F25, G25, F26, G26, F27, G27 [...] Fr, Gr finchè r+1 è una riga vuota (esattamente come nel caso di Cattivik).

Dovrei generare due tipi di elenco, di tipo matriciale:

Elenco tipo 1
nomefile B7 M8 J20 Z15 (dal file xxx1.xls)
nomefile B7 M8 J20 Z15 (dal file xxx2.xls)
...
nomefile B7 M8 J20 Z15 (dal file xx20.xls)

Elenco tipo 2
nomefile B7 F25 G25 (dal file xxx1.xls)
nomefile B7 F26 G26 (dal file xxx1.xls)
nomefile B7 F27 G27 (dal file xxx1.xls)
nomefile B7 F25 G25 (dal file xxx2.xls)
nomefile B7 F26 G26 (dal file xxx2.xls)
nomefile B7 F27 G27 (dal file xxx2.xls)
...
nomefile B7 F25 G25 (dal file xx20.xls)
nomefile B7 F26 G26 (dal file xx20.xls)
nomefile B7 F27 G27 (dal file xx20.xls)

Ringraziando anticipatamente chi avrá la pazienza di aiutarmi, rimango a disposizione per chiarimenti.
Saluti.
AMV.77
Newbie
 
Post: 4
Iscritto il: 03/11/13 04:02

Re: Copiare dati da altri file excel

Postdi AMV.77 » 03/11/13 22:38

Salve a tutti.
Nel frattempo, sono riuscito a generare l'Elenco "Tipo 1".
Sto ancora lavorando sul "Tipo 2", per ora senza esito.
Nuovamente grazie...
AMV.77
Newbie
 
Post: 4
Iscritto il: 03/11/13 04:02

Re: Copiare dati da altri file excel

Postdi AMV.77 » 04/11/13 14:24

Week-end proficuo: generato anche l'elenco "Tipo 2".
Grazie per il sostegno morale.
Saluti.
AMV.77
Newbie
 
Post: 4
Iscritto il: 03/11/13 04:02

Re: Copiare dati da altri file excel

Postdi Anthony47 » 05/11/13 01:26

Eh, non sempre c' e' tempo per provarci subito...
Comunque ho abbozzato questa ipotesi di soluzione che lavora senza aprire i file; l' ho sviluppata proprio perche' mi interessava farlo senza aprire i file per motivi legati ad altri sviluppi, te la propongo anche se hai gia' una soluzione:
Codice: Seleziona tutto
Sub RaccoltaDati()
'by Anthony; vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=98337&p=579874#p579823
'
Dim myList1, myList2, myFile, mySH As String, myDir As String, myEval As String, myRet, myRet2
Dim I As Long, myLinea As String, myB7, myEval1 As String, myEval2 As String
Close #1: Close #2
'
Open "File1txt.txt" For Output As #1
Open "File2txt.txt" For Output As #2
'
myDir = "C:\Users\A_Monge1\Desktop\DA_PC-FACILE\pippo123\"            '<<< La directory dei tuoi files
'
myList1 = Array("Foglio1", "B7", "Foglio1", "M8", "Foglio2", "J20", "Foglio2", "Z15")   '<<< Elenco completo, a coppie Foglio/range
myList2 = Array("Foglio3", "F25", "G25")    '<<< Foglio /range1 /range2
'
'====
myFile = Dir(myDir & "*.xls*")
Do While myFile <> ""
myEval1 = "'" & myDir & "[" & myFile & "]"
If myFile = ThisWorkbook.Name Then GoTo nextF
    myLinea = myFile
    myB7 = "#"
    For I = LBound(myList1, 1) To UBound(myList1, 1) Step 2
        myRet = "#"
        myEval = myEval1 & myList1(I) & "'!" & Range(myList1(I + 1)).Address(1, 1, xlR1C1)
        On Error Resume Next
        myRet = ExecuteExcel4Macro(myEval)
        On Error GoTo 0
        If I = LBound(myList1, 1) Then myB7 = myRet
        myLinea = myLinea & ";" & myRet
    Next I
    Write #1, myLinea
'Compila file2:
    myLinea = myFile & ";" & myB7
    For I = 1 To 1000               'Ipotizzato max 1000 possibili righe per file
        myRet = "#": myRet2 = "#"
        myLinea = myFile & ";" & myB7
        myEval = myEval1 & myList2(LBound(myList2, 1)) & "'!" & Range(myList2(LBound(myList1, 1) + 1)).Offset(I - 1, 0).Address(1, 1, xlR1C1)
        myEval2 = myEval1 & myList2(LBound(myList2, 1)) & "'!" & Range(myList2(LBound(myList1, 1) + 2)).Offset(I - 1, 0).Address(1, 1, xlR1C1)
        On Error Resume Next
        myRet = ExecuteExcel4Macro(myEval)
        myRet2 = ExecuteExcel4Macro(myEval2)
        On Error GoTo 0
        If myRet2 = "" Or myRet2 = "#" Or myRet2 = 0 Then
            myLinea = ""
            Exit For
        Else
            myLinea = myLinea & ";" & myRet & ";" & myRet2
            If Len(myLinea) > 2 Then Write #2, myLinea
        End If
    Next I
'
'File successivi:
nextF:
myFile = Dir
Loop
'====
Close #1: Close #2
MsgBox ("Completato")
End Sub
Devi personalizzare le istruzioni marcate <<<; il risultato sara' disponibile nei file File1txt.txt e File2txt.txt, i campi sono separati dal "Punto-e-virgola".

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare dati da altri file excel

Postdi AMV.77 » 05/11/13 21:25

Anthony,
innazitutto grazie per risposta: proveró anche la tua soluzione, e ti faró sapere.
Grazie ancora, e saluti.

PS:
Spero che il mio "grazie per il sostegno morale" non sia stato mal interpretato: era una battuta, visto che ho trovato la soluzione poco dopo aver postato, e sapendo che qualcuno, comunque, ci avrebbe dedicato del tempo (come si é dimostrato).
AMV.77
Newbie
 
Post: 4
Iscritto il: 03/11/13 04:02

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "Copiare dati da altri file excel":


Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti