aprire file excel con ciclo



  • aprire file excel con ciclo
    di fantedicoppe (utente non iscritto) data: 20/08/2014 13:11:05

    Salve a tutti... intanto grazie per l'impegno che mettete, mi state aiutando davvero tanto e sto imparando in un sacco di cose...
    Ora sto cercando di fare una cosa che è + grande di me, ma non demordo... intanto vi spiego cosa ho in mente di fare, poi espongo il problema (che è solo l'inizio).

    ho dei file.xlsx tutti simili tra loro, ognuno ha 12 fogli (uno per ogni mese) con la stessa struttura. Ora io mi sono già fatto una macro in un file.xls con la quale mi creo i file come servono a me.
    Il problema viene fuori quando devo aggiornare delle righe nel foglio, siccome ho delle formattazioni condizionali ed altre opzioni che riuscirei difficilmente a modificare con le macro pensavo di farmi un altro file.xls per sostituire i fogli con degli altri simili corretti (la stessa procedura usata per crearli praticamente)

    visto che non sono molto pratico sto utilizzando metodi piuttosto rudimentali, ma almeno di passo in passo posso rendermi conto di dove sbaglio.
    quindi per ora sto provando a mettere tutti i file nella stessa cartella (quello contenente le macro che si chiama base.xls e quelli da modificare che sono file1.xlsx, file2.xlsx ecc.)

    Nel file base.xls ho 2 fogli, il primo che contiene le info sui file ed i fogli da sostituire ed il secondo che è proprio il foglio da andare a copiare in tutti gli altri file.
    pensavo di aprire il file base per primo, poi aprire uno alla volta tutti i file che devo andare a modificare, eliminare i fogli, sostituirli, salvare il file e chiuderlo, poi aprire l'altro.

    nel primo foglio sono riuscito a fare un elenco dei file che potrei modificare, ed in una colonna a fianco ho un elenco dei file che poi modificherà la macro

    Per ora sto provando ad aprire tutti i file con un ciclo for, poi quando ci riuscirò passerò alla modifica ed alla chiusura (prima che si apra l'altro)...

    cmq non riesco ad aprire i file, sto provando questo codice ma mi apre solo il primo file, poi dice errore di runtime 1004, impossibile trovare il file....

    sicuro è una cazzata ma non ne sto venendo a capo
     
    COLONNA A                                 COLONNA C
    File Presenti nella cartella:		File che si vogliono modificare:
    file1.xlsx	                          	file1.xlsx
    file2.xlsx		                        file2.xlsx
    file3.xlsx		                        file3.xlsx
    file4.xlsx		                        file4.xlsx
    file5.xlsx		                        file5.xlsx
    file6.xlsx		                        file6.xlsx
    file7.xlsx		                        file7.xlsx
    
    
    For i = 1 To Workbooks(1).Sheets(1).Range("c65000").End(xlUp).Row - 1
    'il ciclo va da 1 a 7 in questo caso, se ho + file, la colonna c ha + celle piene ed il numero aumenta
    
    Workbooks.Open Filename:=Workbooks(1).Path & "" & Cells(i + 1, 3).value
    
    Next i



  • di lepat (utente non iscritto) data: 20/08/2014 14:59:01

    prova così
     
    fpath = thisworkbook.path
    LR = Cells(Rows.Count, "C").End(xlUp).Row
    For i = 2 To LR
    Workbooks.Open Filename:=fPath & "" & Cells(i, 3).value
    Next i



  • di fantedicoppe data: 20/08/2014 17:01:26

    ho provato anche con questo codice ma l'errore è sempre lo stesso... non capisco perchè se provo ad aprire i file uno alla volta (senza il for e sostituendo 2,3 o 4 al posto di i + 1) i file li apre...

    ho allegato il file zip con dentro i file casomai volete provare anche voi



  • di fantedicoppe data: 20/08/2014 17:27:29

    non so cosa non andava ora ho riprovato con questo codice e funziona ¬_¬

    forse senza specificare il percorso apriva la cella dell'ultimo foglio attivo...
    però avevo già provato anche con il vecchio codice... vabbe, l'importante è che funziona... grazie

    Se dovessi avere altri problemi riguardanti questo lavoro rispondo a questa discussione o ne creo un'altra?
     
    Sub macrounica()
    fPath = ThisWorkbook.Path
    LR = Cells(Rows.Count, "C").End(xlUp).Row
    For i = 2 To LR
    Workbooks.Open Filename:=fPath & "" & Workbooks(1).Sheets(1).Cells(i, 3)
    Next i
    End Sub



  • di lepat (utente non iscritto) data: 20/08/2014 19:56:15

    se rientra nell'argomento del titolo continua su questa