› Sviluppare funzionalita su Microsoft Office con VBA › Foglio su server modificabile da più utenti
-
AutoreArticoli
-
Buongiorno a tutti,
dato un foglio Excel presente su server, è possibile fare in modo che più utenti possano aprirlo in scrittura (e quindi modificarlo) contemporaneamente?
Cercando su internet, la soluzione più proposta è quella di spostare il foglio su un cloud invece che su server, ma in questo modo sinceramente non saprei come gestire l'apertura del file tramite VBA (ecco perchè ho messo il topic in questa sezione).
Ringrazio in anticipo tutti coloro che vorranno darmi una mano.
Giulio
Ciao @giulio!
Un file Excel caricato su un server non potrà mai essere in scrittura contemporanea a più utenti (quale sarebbe l'ultima versione valida?)!
Sarà in scrittura ad un utente ed in sola lettura a tutti gli altri!
Buona giornata!
Paolo
Ciao Paolo, grazie per il riscontro. In realtà sinceramente io non capisco perchè dovrebbe essere così. Mi spiego, se lo salvi in cloud, che fondamentalmente è lo stesso concetto del server solo che il collegamento è internet e non LAN, è possibile che più utenti lo aprano in scrittura contemporaneamente. Se un utente modifica una cella, l'altro utente vede in tempo reale la cella che si sta modificando. Perchè quindi in server questa cosa non dovrebbe essere possibile? Boh... Comunque, come posso risolvere in alternativa questo problema? Ho un programma VBA che deve gestire un progressivo. Questo programma è utilizzato anche da molti utenti contemporaneamente, ed è fondamentale che quando un utente lo lancia il progressivo aumenti istantaneamente, o gli altri utenti connessi duplicherebbero lo stesso progressivo.
Giulio
Buon pomeriggio, Giulio;
Questo è ciò che farei:
- File presente su Server, ipotiziamo sia Master.xlsx
- File condiviso presente su Server, ipotiziamo sia Slave.xlsmSlave.xlsm avrà un Foglio di lavoro esattamente uguale al Foglio di lavoro presente in Master.xlsx e un paio di Codici VBA:
Codice VBA #1; Sub Aggiorna:
- Apre Master.xlsx
- Copia il contenuto del Foglio di lavoro di Master.xlsx nel Foglio di lavoro di lavoro di Slave.xlsm
- Chiude Master.xlsxCodice VBA #2; Sub Nuovo, dopo l'inserimento di ogni nuovo Record:
- Apre Master.xlsx
- Copia il nuovo Record nel Foglio di lavoro di Master.xlsx
- Salva Master.xlsx
- Chiude Master.xlsxPotrebbe sembrare complicato ma in realtà è piuttosto semplice e, garantisco, funziona.
A disposizione.
Giuseppe
Ciao Giuseppe, grazie per il consiglio. Siamo sempre li, se due utenti contemporaneamente utilizzano "Slave", la Sub "Nuovo" non funzionerebbe in quanto ci sarebbero due utenti che vogliono salvare le modifiche di Master. O sbaglio?
Buona sera, Giulio;
grazie della tua risposta.Sub Aggiorna e Sub Nuovo hanno entrambi un tempo di esecuzione di un paio di secondi, credimi; per maggior sicurezza credo si potrebbe attivare un Msgbox che avverte il secondo Utente che il salvataggio non è andato a buon fine.
A disposizione.
Giuseppe
Ho capito, tu punti sul fatto di aprire, modificare e chiudere rapidamente il file solo per l'esecuzione dell'operazione di scrittura, per fare sì che il file rimanga aperto pochi istanti e a meno di situazioni molto sfortunate ci sia quindi sempre un solo utente in scrittura. Tutte le altre operazioni di lettura invece possono essere scisse su un altro foglio che invece rimane aperto per tutta la durata del run. Potrebbe essere una possibilità interessante, sicuramente la valuterò. Grazie mille di nuovo.
Giulio
Buona sera, Giulio;
... fare sì che il file rimanga aperto pochi istanti ...
è esattamente quello che intendevo.Purtroppo non posso condurre test approfonditi, non dispongo dell' accesso ad un server, ma, se lo ritieni utile e opportuno, assieme possiamo approfondire.
A disposizione.
Giuseppe
Buongiorno a tutti,
volevo solo informarvi che alla fine per la soluzione del problema ho seguito il consiglio di Giuseppe; ho quindi creato un file apposta per la gestione del progressivo che viene aperto e chiuso istantaneamente solo per fare questa operazione, mentre il resto delle informazioni continueranno a essere gestite dal foglio principale.
Grazie mille Giuseppe e grazie mille a tutti.
Giulio
-
AutoreArticoli
