Condividi:        

[Excel] Ripetere la stessa operazione su 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] Ripetere la stessa operazione su più file

Postdi SauloDD » 18/08/12 14:02

Ciao a tutti,

ho un problema che a voi sicuramente risulterà semplice quasi banale, ma che per me è invece complicato.
Sono neofita di VSA ed ho costruito macro, ma per applicarle ad uno o due o tre o quattro file, di modo che mi bastava indicare nel codice il nome del file specifico.

Ho 1200 file excel (creati con Excel 2011 per Mac).
Li ho messi tutti in una stessa cartella ("Riprovaoggi")
Per ognuno di questi file io devo:
1) aprirli uno ad uno e salvarli nel formato .csv;
2) mantenere lo stesso nome del file Excel di partenza, ma con diversa estensione (la nuova sarà appunto .csv);
3) spostare il file convertito in una cartella a parte (io l'ho chiamata "Appoggio").
Ho bisogno di fare questo in modo da potere importare i files .csv importare in FileMakerPro.
Questo perché - purtroppo - l'importazione diretta da Excel a FileMaker non funziona, crea un record per ogni cella e non per ogni riga!!!.


Ho girato un bel pò sul forum e ho anche letto il topic "[EXCEL] macro per copiare valori da diversi files excel" (viewtopic.php?p=526911).
Ma non sono riuscito ad adeguare il codice lì proposto, sicuramente per mia incompetenza...e perché non mi sono ancora chiari i significati di ognuno dei comandi lì proposti.
Ad es MyF: dopo di esso occorre indicare il path della cartella di partenza, ma quando lo inserisco io non mi funziona...trova la cartella, ma la dice vuota!.

Un saluto a tutti

E un grazie anticipato a chi vorrà dedicarmi un p ò di tempo anche in questo caldo agostano...

Saulo
SauloDD
Newbie
 
Post: 5
Iscritto il: 18/08/12 13:35

Sponsor
 

Re: [Excel] Ripetere la stessa operazione su più file

Postdi patel » 18/08/12 15:06

Devi adattarla per il Mac, questa funziona su windows
Codice: Seleziona tutto
Sub AprifileSaveasCsv()
Dim wbOpen As Workbook
Dim wbNew As Workbook
strPath = "D:\Riprovaoggi\"
newPath = "D:\Appoggio\"
Dim filename As String
filename = Dir(strPath & "*.xlsx")
Do While filename <> ""
    Set wbOpen = Workbooks.Open(strPath & filename)
    ActiveWorkbook.SaveAs filename:= _
            newPath & filename & ".csv", FileFormat:= _
            Excel.XlFileFormat.xlCSV, CreateBackup:=False
            ActiveWorkbook.Close Savechanges:=False
    filename = Dir
Loop
End Sub
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel] Ripetere la stessa operazione su più file

Postdi Flash30005 » 18/08/12 15:50

Ciao SauloDD e benvenuto nel Forum

Leggi quanto postato a Patel
Non ho testato la macro ma dovrebbe funzionare
devi solo aggiungere una riga codice per eliminare il file origine dalla cartella iniziale dopo averlo salvato in "appoggio"
quindi
Codice: Seleziona tutto
           
            ActiveWorkbook.Close Savechanges:=False  '<<<< esistente
           Kill strPath & filename   '<<<<<<<<<<<<  aggiungere questa riga qui
filename = Dir  '<<<<esistente


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: [Excel] Ripetere la stessa operazione su più file

Postdi SauloDD » 18/08/12 16:14

Grazie a Junior e a Flash30005 per la rapida risposta.

Ho testato il codice, riscrivendolo per la parte che riguarda l'identificazione del path.
Ecco il tutto
Codice: Seleziona tutto
<<<<<<<<<<<
<<<<<<<<<<<
Sub AprifileSaveasCsv()
Dim wbOpen As Workbook
Dim wbNew As Workbook
strPath = "[b]Macintosh Hd:Users:Saulo:Desktop:Oggiriprova[/b]"
newPath = "[b]Macintosh Hd:Users:Saulo:Desktop:Appoggio[/b]"
Dim filename As String
filename = Dir(strPath & "*.xlsx")
Do While filename <> ""
    Set wbOpen = Workbooks.Open(strPath & filename)
    ActiveWorkbook.SaveAs filename:= _
            newPath & filename & ".csv", FileFormat:= _
            Excel.XlFileFormat.xlCSV, CreateBackup:=False
            ActiveWorkbook.Close Savechanges:=False
    filename = Dir
Loop
End Sub
<<<<<<<<<<<
<<<<<<<<<<<


Purtroppo la macro si ferma a
filename = Dir(strPath & "*.xlsx")
come se non esistessero file nella cartella al percorso indicato..ma non è così...

Aggiungo - perché forse è utile - che io uso VBA all'interno di Excel e nella versione Mac, nel caso in cui questo potesse essere decisivo.

Ovviamente non ho ancora potuto testare il codice aggiuntivo per eliminare il file di origine .
Ma una curiosità.
Le parentesi uncinate accumulate (ad es. <<<< esistente) servono per identificare un commento, vero?

Saulo
SauloDD
Newbie
 
Post: 5
Iscritto il: 18/08/12 13:35

Re: [Excel] Ripetere la stessa operazione su più file

Postdi SauloDD » 18/08/12 16:18

Per l'esattezza, la routine visualizza questo messaggio di errore

<<<<<<<<<<<
Errore di runtime 68
Dispositivo non disponibile
<<<<<<<<<<<

Saulo
SauloDD
Newbie
 
Post: 5
Iscritto il: 18/08/12 13:35

Re: [Excel] Ripetere la stessa operazione su più file

Postdi patel » 18/08/12 19:43

Le parentesi uncinate accumulate (ad es. <<<< esistente) servono per EVIDENZIARE un commento, l'apice ' lo identifica
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: [Excel] Ripetere la stessa operazione su più file

Postdi ricky53 » 19/08/12 01:10

Ciao,
quelle che chiami parentesi uncinate sono tanti simboli di minore ( "<" ) e sono un modo utilizzato per evidenziare un commento scritto da chi ti propone del codice.

Si può utilizzare qualunque modo per evidenziare dei commenti '<<<------------ Nuova Istruzione
oppure '<<============= Nuova Istruzione
o semplicemente
' Nuova Istruzione

Cosa molto importate è far precedere sempre il commento dall'apice !!!
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] Ripetere la stessa operazione su più file

Postdi SauloDD » 19/08/12 09:39

SauloDD ha scritto:Per l'esattezza, la routine visualizza questo messaggio di errore

<<<<<<<<<<<
Errore di runtime 68
Dispositivo non disponibile
<<<<<<<<<<<

Saulo


Dopo una lunga ricerca sul web, forse ho scoperto l'arcano.
Vi rimando a questa pagina http://www.rondebruin.nl/mac.htm
Come visi legge e' proprio come sospettavo.
Le macro di VBA per Windows non sempre funzionano anche sul gemello VBA per Mac.
Ci sono diverse funzioni che sul Mac non vanno o devono essere impostate in altro modi.
Tra queste proprio le DIR e PATH con cui e' costruito il codice proposto.

Saulo
SauloDD
Newbie
 
Post: 5
Iscritto il: 18/08/12 13:35

Re: [Excel] Ripetere la stessa operazione su più file

Postdi SauloDD » 19/08/12 09:41

ricky53 ha scritto:Ciao,
quelle che chiami parentesi uncinate sono tanti simboli di minore ( "<" ) e sono un modo utilizzato per evidenziare un commento scritto da chi ti propone del codice.

Si può utilizzare qualunque modo per evidenziare dei commenti '<<<------------ Nuova Istruzione
oppure '<<============= Nuova Istruzione
o semplicemente
' Nuova Istruzione

Cosa molto importate è far precedere sempre il commento dall'apice !!!



Quindi dopo l'apice potrei usare un qualunque segno a mio piacimento.

Grazie

Saulo
SauloDD
Newbie
 
Post: 5
Iscritto il: 18/08/12 13:35

Re: [Excel] Ripetere la stessa operazione su più file

Postdi ricky53 » 20/08/12 01:31

SI !

Evidenziare in un qualunque modo ma evidenziare !
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


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Ripetere la stessa operazione su più file":


Chi c’è in linea

Visitano il forum: Nessuno e 22 ospiti