Tutto lo sviluppo e' partito da file tutti uguali e una tabella (in Tables) da popolare in cui le intestazioni non erano uguali ai nomi dei fogli,
Per questo, per garantire che il posizionamento dei dati in Tables fosse costante, la prima macro (Sub forTeo2) lavora creando un elenco di fogli e usando quella lista su tutti i file successivi. Se alcuni file hanno dei fogli aggiuntivi questi vengono semplicemente ignorati.
La seconda macro (Sub SpitNSolve) ha replicato lo stesso concetto dell' elenco dei fogli: solo i fogli censiti inizialmente vengono poi "lavorati" sui singoli K files (enucleazione, Risoluzione, ricomposizione in K).
Il risultato e' quindi che, in presenza di file che contengono Fogli aggiuntivi:
-la Sub SpitNSolve li lascia sul file K e non li processa separatamente; quindi: (1)maggiore lentezza nell' esecuzione del Risolutore sui file enucleati dal K file (se questi fogli contengono anche loro delle aree analizzate dal risolutore) e (2) il Risolutore non e' stato eseguito su questi fogli che sono rimasti sul K file
-la Sub forTeo2 non estrarra' i dati da questi fogli aggiuntivi per posizionarli nella tabella di Tables.xlsm
Quindi eventuali fogli spuri (cioe' non comuni a tutti i file, tipo C e tipo K) vengono semplicemente ignorati dalle macro sviluppate; potrebbero leggermente rallentare il lavoro di SpitNSolve (sui file che contengono fogli spuri).
TUTTAVIA e' opportuno fare una mdifica nelle macro: infatti partendo dal presupposto che i file eranu tutti uguali io l' elenco dei fogli lo creo su un file preso a caso... Quindi c' e' il rischio che l' elenco venga costruito su un file anomalo, con conseguenti errori nelle fasi successive.
Per rimediare a cio:
-crea un file "master" che contiene solo i fogli comuni (parti da un file tipo K standard, salvalo col nome ZCZC.xlsx nella stessa directory in cui sono localizzati tutti i file K e C (ed e' presente la directory "work").
Modifica la riga marcata '<<<*** presente sia in SpitNSolve che forTeo2
- Codice: Seleziona tutto
'compila lista worksheets
FName = Dir(myPath & "\K*.xlsx") '<<<***
Modificala (in ambedue le macro) in
- Codice: Seleziona tutto
FName = Dir(myPath & "\ZCZC.xlsx") '<<<***
Andando alle "penultime" domande:
-il file K rimane aperto per scelta mentre i singoli fogli vengono elaborati, in attesa di "ricongiungersi" con loro.
-Tables.xlsm non rallenta l' esecuzione del Risolutore
-la Sub ssSolve2 non va lanciata, ma viene richiamata all' interno di SpitNSolve
Ho risposto im modo indiretto e articolato alle domande perche' non e' un gioco di Si e No, spero di non averti confuso oltre le mie intenzioni...
Ciao