Dopo varie valutazioni e prove, ho trovato che la soluzione migliore fosse salvare il file (A) tramite macro che allego sotto in un file fisso (B) già filtrato dei soli dati che interessano agli altri utenti, che devono solo consultarlo in questa veste.
Funziona tutto correttamente, l'unico piccolo intoppo che ho riscontrato è che accedendo al file "B" mi dice che il file è occupato e me lo fa aprire in sola lettura, cosa che mi va anche bene, ma che non ha a mio parere , alcuna motivazione.
Se controllo la postazione dove eseguo la macro e il file "A" è aperto, nella finestra non vedo 2 file aperti e infatti anche aggiungendo alla macro la chiusura del file "B", mi da errore dicendomi che non è aperto questo file.
Quale potrebbe essere la motivazione?
Entrambi i file risiedono su una SHARE pubblica in cui tutti gli utenti connessi hanno le stesse autorizzazioni, quindi il problema non riguarda questo aspetto.. (anche perchè se io chiudo il file , il FILE "B" non mi risulta piu' bloccato, diventa bloccato solo dopo l'esecuzione della macro che salva il file "A" in "B").
Grazie a tutti.
- Codice: Seleziona tutto
Sub SALVA3()
'Apro il "FileA" ed eseguo questa Macro per salvare le modifiche
ChDrive "S"
Perc = "\\xxxxxxxxxxx\pubblica\Manutenzione\"
ActiveSheet.ListObjects("Tabella14").Range.AutoFilter Field:=6
ActiveSheet.ListObjects("Tabella14").Range.AutoFilter Field:=6, Criteria1:= _
Array("SI", "PARZIALE"), Operator:=xlFilterValues
NomeF = Perc & "FileB" & ".xlsm"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=NomeF ''Salvo il "FileB" , con i filtri appositi
Application.DisplayAlerts = True
'Adesso Salvo il "FileA", con i filtri appositi, che resterà aperto nella postazione fissa
ActiveSheet.ListObjects("Tabella14").Range.AutoFilter Field:=6
ActiveSheet.ListObjects("Tabella14").Range.AutoFilter Field:=6, Criteria1:= _
Array("NO", "PARZIALE", "="), Operator:=xlFilterValues
NomeF2 = Perc & "FileA" & ".xlsm"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=NomeF2
Application.DisplayAlerts = True
MsgBox ("Salvataggio Effettuato Correttamente")
End Sub