Mi intrometto per dire la mia su come si potrebbe fare, ispirandosi molto al topic
viewtopic.php?f=26&t=75455? di Antom
1. si scrive un PIPPO.BAT, archiviato sotto C:\, che contenga
- Codice: Seleziona tutto
CD Directory principale
ATTRIB *.xls /s >C:\pippo123.txt
2. La macro lancera' questo bat; il comando e'
- Codice: Seleziona tutto
Shell ("c:\pippo.bat")
Come e' intuibile questo creera' un file C:\pippo123.txt con l' elenco di tutti i file xls disponibili nella directory e subdirectories (come nel post di Antom, solo che lì era un lavoro una tantum e l' elenco si faceva a mano; qui e' un continuo aggiornamento e se non si fa con Shell si diventa vecchi)
3. Importare questo elenco in un foglio del file di ricerca; il codice e' quello prodotto da un Registra nuova macro mentre si eseguono le seguenti operazioni (sempre dal topic di Antom)
-vai sul foglio "attrib"
-seleziona tute le colonne A-B-C-D-E-F-G e cancella
-importa da A1 il contenuto del file pippo123.txt. Procedura:
>seleziona A1
>Menu /Dati /Importa dati esterni /Importa dati
>scegli Tipo file=txt e vai a scegliere in C: il file pippo123.txt; premi Apri
>scegliere Larghezza fissa, Avanti
>togliere eventuali separatori di colonna gia' presenti nell' anteprima dati (sono delle linee verticali sovrapposte al testo, fare doppioclick per cancellarle), e inserirne 1 solo subito prima di c:\ (fare click per inserire)
>premere Fine
-in questo modo avrai in col B, da B1, tutti i file che sono da manipolare
-eliminare la colonna A per avere l' elenco in col A
A questo punto si ripassano uno per uno i files in elenco, e se il nome non contiene "finito":
-si apre il file e per semplicita' se ne memorizzza il nome; dalla macro Antom:
- Codice: Seleziona tutto
Workbooks.Open Filename:=NextName, UpdateLinks:=0
OWb = ActiveWorkbook.Name
-si scorrono tutti i fogli del file con un ciclo del tipo
- Codice: Seleziona tutto
For I= 1 to ActiveWorkbook.Worksheets.Count
-si legge il nome foglio, e con un If multiplo si verifica se il nome corrisponde a uno di quelli in elenco:
- Codice: Seleziona tutto
ShN=Sheets(I).name
If ShN="Gennaio" or ShN="Febbraio" or ... Then
'istruzioni
End if
-se If e' vero, si apre il foglio e si va a verificare le celle
-se il valore corrisponde, si memorizza il nome foglio sulla prima colonna libera accanto al nome file su foglio Attrib
-si ripete il check foglio (Next I)
-si chiude il file aperto; io farei (va bene non salvare?)
- Codice: Seleziona tutto
Workbooks(OWb).Close SaveChanges:=False
-si passa al file successivo del foglio attrib, fino a trovare un vuoto.
Alla fine, sull' elenco ci sono tutti i files con in evidenza i fogli i cui dati corrispondono ai criteri di check.
E vissero felici e contenti.
Se non e' sufficiente, sono qua.