Sviluppare funzionalita su Microsoft Office con VBA Foglio su server modificabile da più utenti

Login Registrati
Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
  • Autore
    Articoli
  • #26726 Score: 0 | Risposta

    Giulio
    Partecipante

      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

      #26727 Score: 0 | Risposta

      PMC77
      Partecipante
        18 pts

        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

        #26728 Score: 0 | Risposta

        Giulio
        Partecipante

          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

          #26729 Score: 0 | Risposta

          GiuseppeMN
          Partecipante
            19 pts

            Buon pomeriggio, Giulio;

            Questo è ciò che farei:
            - File presente su Server, ipotiziamo sia Master.xlsx
            - File condiviso presente su Server, ipotiziamo sia Slave.xlsm

            Slave.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.xlsx

            Codice 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.xlsx

            Potrebbe sembrare complicato ma in realtà è piuttosto semplice e, garantisco, funziona.

             

            A disposizione.

            Giuseppe

            #26731 Score: 0 | Risposta

            Giulio
            Partecipante

              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?

              #26732 Score: 0 | Risposta

              GiuseppeMN
              Partecipante
                19 pts

                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

                #26733 Score: 0 | Risposta

                Giulio
                Partecipante

                  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

                  #26734 Score: 0 | Risposta

                  GiuseppeMN
                  Partecipante
                    19 pts

                    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

                    #26784 Score: 0 | Risposta

                    Giulio
                    Partecipante

                      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

                    Login Registrati
                    Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
                    Rispondi a: Foglio su server modificabile da più utenti
                    Gli allegati sono permessi solo ad utenti REGISTRATI
                    Le tue informazioni: