Forum di Excel e VBA, per condividere esperienze e risolvere problemi su: Excel, Word, Access, Power Point, Microsoft Office, macro, Visual Basic e Visual Studio.
MODIFICA ESTENSIONE di SIGNO8 (utente non iscritto) data: 17/09/2012 17:46:01
Ciao a tutti
vi disturbo se per caso siete a conoscenza di una macro o è possibile avere delle indicazioni per compilarla, che mi apra, da una cartella uno alla volta una serie di file excel in formato 2007, mi permetta di controllare il contenuto per 5 secondi e poi li salvi uno a uno con lo stesso nome in versione excel 2000 nella stessa cartella o in un'altra.
Vi ringrazio!!!
di Vecchio Frac data: 17/09/2012 18:35:55
Cinque secondi? Questa è una delle richieste più bizzarre che io abbia mai visto :)
Ma intendi dire che riesci in cinque secondi a controllare il contenuto del file?
O è solo un modo di dire? Nel senso che sai già cosa guardare e rapidamente ti rendi conto che se una cella ha un certo valore ciò ti basta.
Se ti basta solo verificare che un file abbia un determinato contenuto non serve nemmeno aprirlo, Excel ti permette di scandagliare un altro file Excel anche se è chiuso.
Se invece intendi dire che vuoi che il file si apra, rimanga aperto esattamente cinque secondi e poi si chiuda salvandosi in altro formato ivi o altrove, anche questo è fattibile (metodo OnTime dell'oggetto Application.
Salvare da un formato all'altro è un attributo del metodo SaveAs (per la precisione, FileFormat).
di SIGNO8 (utente non iscritto) data: 18/09/2012 10:05:13
Lo so che è bizzarra come necessità.., ma so già cosa guardare.. eventualmente se non sono 5 modifico a 10 o più, l'importante è che la macro mi faccia il ciclo di prendere un file in una cartella (con tanti altri) aprirlo, vederlo e salvarlo in un altro formato.. Penso che questa possa essere utile anche ad altri utenti con altri programmi che utilizzano VBA.. (purtroppo non essendo esperto in programmazione non so se usare un ciclo che mi richiami una lista (creata da me) con il nome dei vari file presenti nella cartella oppure se esiste qualche altra dritta, inoltre il problema lo avrei con "l'attesa per tot secondi prima del salvataggio del file..")
di Vecchio Frac data: 18/09/2012 15:48:53
Per schedulare un evento usa Application.OnTime nell'evento Workbook_Open del file principale:
Application.OnTime Now + TimeValue("00:00:05"), "pippo"
(esegue la sub pippo 5 secondi dopo l'ora corrente)
Per vedere i file di una cartella usa CreateObject("Scripting.FileSystemObject") e poi cicli esaminando gli oggetti File della cartella Folder. Quando hai recuperato un file testi se è un xls e se è così lo apri.
Ma se già sai quale cella deve contenere cosa, ci sono metodi più rapidi e se interessa aggiungerò un intervento.
Sub test
Set fso = CreateObject("Scripting.FileSystemObject")
source = "C:mydir"
Set oFol = fso.GetFolder(source)
Set fi = oFol.Files
For Each f in fi
msgbox f.Name
Next
End SUb
di SIGNO8 (utente non iscritto) data: 18/09/2012 19:13:37
Ti ringrazio!!! proverò a preparare il tutto!!! Speriamo riesca a farlo funzionare! Grazie