Excel e gli applicativi Microsoft Office Proteggere una cartella (con password) da un'altra cartella

LoginRegistrati
Stai vedendo 25 articoli - dal 1 a 25 (di 32 totali)
  • Autore
    Articoli
  • #17318 Risposta
    Gret
    Gret
    Partecipante

      Buonasera a tutti,

      sono sempre io   ma con un caso un pò particolare..

      Provo a spiegare.. in una cartella (Cartel1) sono presenti userform, textbox, macro ecc, tutto ciò serve a trasferire dati in un'altra cartella (Cartel2) che andrà condivisa con altri utenti.

      Cartel2 non dovrà essere in nessun caso modificata.

      Si può proteggere la cartella da Cartel1 con password o altro senza che gli altri vadano a modificare il contenuto, il tutto fatto in automatico?

      Se sì come?

      Grazie in anticipo per ogni suggerimento e buona serata  

      #17320 Risposta

      vecchio frac
      Senior Moderator
      • Sfida #1
        145 pts

        Non senza ricorrere a VBA, però credo di sì, nello stesso modo come proteggi la cartella corrente. Però lo scenario è vasto: Cartel2 viene aperto o viene lavorato in remoto? è un file condiviso?

        #17321 Risposta
        Gret
        Gret
        Partecipante

          Ciao vecchio frac,

          io sono in possesso di entrambe le cartelle. La condivisione avviene quando finisco di inserire i dati, poi la condivido.

          Questo è il percorso che affronto: apro Cartel1 e Cartel2 >> in Cartel1 apro l'userform ed inserisco i dati che verranno trasferiti in Cartel2 >>> chiudo Cartel2 >> condivido Cartel2.

          La modifica avviene solo ed esclusivamente da parte mia. Prima di chiudere Cartel2 vorrei che uscisse tipo un messaggio "Vuoi proteggere Cartel2 con password?" se clicco su sì, viene attivata la protezione e si chiude la cartella (Cartel2) e poi la condivido con altri utenti.

           

          #17322 Risposta
          Gret
          Gret
          Partecipante

            Nel momento in cui l'utente apre la cartella, vede il foglio tranquillamente, con i dati che ho inserito io prima.

            Se fa click per modificare il foglio,cella,formula ecc deve per forza immettere la password.

            #17323 Risposta

            vecchio frac
            Senior Moderator
            • Sfida #1
              145 pts

              Quindi il Workbook "Cartel2" è nel tuo disegno la base dati. Nessuno deve manipolare la base dati se non attraverso l'interfaccia, presente in Workbook "Cartel1", che tu distribuisci ai tuoi utenti. In pratica uno schema front-end e back-end. Non vedo bene un file di Excel come base dati 🙂 Ti suggerirei di creare un file mdb (o accdb) che contenga la tabella o le tabelle interessate, e di utilizzare una semplice connessione ADO che da Excel permetta di scrivere e leggere i dati verso il database. Nota che può andare bene qualunque tipo di tabella di database (non esiste solo Access: sqlite, sql server, ecc.).

              Se invece preferisci percorrere la strada cui hai pensato, non vedo difficoltà a proteggere (e sproteggere) i fogli Excel come consueto, con Worksheet.Protect (Unprotect) e password. Immagin che si possa anche impostare la password di apertura, non solo di blocco/sblocco celle.

              Ricordo comunque che è facilissimo aggirare le protezioni di Excel (dove invece molto meno facile è forzare un file Access).

              #17329 Risposta
              Gret
              Gret
              Partecipante

                Buongiorno e scusa se ieri non ho risposto, ho lasciato in quarto il pc.

                Se parli di Access con me, è come se stessi bestemmiando ... scherzo naturalmente. Purtroppo Access lo uso poco e niente, preferisco rimanere su excel.

                Per quanto riguarda il fatto della protezione della cartella excel (non è il massimo della protezione lo so), avresti qualche link da suggerirmi?

                Magari con un esempio sarebbe fantastico, come trasformare il file di sola lettura ecc...

                Ti ringrazio tantissimo e buona continuazione  

                 

                #17330 Risposta
                Gret
                Gret
                Partecipante

                  vecchio frac ha scritto:

                  Quindi il Workbook "Cartel2" è nel tuo disegno la base dati. Nessuno deve manipolare la base dati se non attraverso l'interfaccia, presente in Workbook "Cartel1", che tu distribuisci ai tuoi utenti.

                  Solo Cartel2 distribuisco agli utenti, Cartel1 rimane nel mio pc perchè modificherò solo io i dati.

                  Non so se ho spiegato bene, in tal caso sono qui.

                  #17331 Risposta

                  vecchio frac
                  Senior Moderator
                  • Sfida #1
                    145 pts

                    In verità non ho pensato di farti usare Access (che ritengo sarebbe meglio, peraltro), ma di utilizzarlo solo banalmente come database. Però ho capito che i tuoi utenti devono poter aprire e consultare il file con i dati che tu hai inserito (in sola lettura però), e che Excel è l'applicativo più noto e usabile.

                    Magari adesso che ho tempo provo a buttare giù uno scenario di lavoro 🙂

                    #17332 Risposta
                    Gret
                    Gret
                    Partecipante

                      Grazie mille dell'aiuto  

                      #17335 Risposta

                      vecchio frac
                      Senior Moderator
                      • Sfida #1
                        145 pts

                        Lavorare con un file dati condiviso non è una buona idea. Gestire gli accessi concorrenti è anche fonte di guai e comunque non puoi avere la certezza che i tuoi utenti abbiano l'ultimo dato disponibile.

                        Secondo me la strada da percorrere è quella classica frontend-backend:

                        - un file di amministrazione (gestito da te) che si occupa di inserire, modificare, rimuovere i dati;

                        - un file di consultazione (in locale. Ogni utente ha la propria copia e usa quella) che si occupa di accedere in sola lettura ai dati e li presenta all'utente;

                        - il file di database (può essere un file di Access, un file di testo, un file sqlserver, sqllite, db3 eccetera) che contiene i dati grezzi e li memorizza: gli utenti non aprono mai il file di dati ma deve essere accessibile a tutti in na cartella condivisa con i permessi almeno di lettura.

                        #17336 Risposta
                        Gret
                        Gret
                        Partecipante

                          vecchio frac ha scritto:

                          un file di amministrazione (gestito da te) che si occupa di inserire, modificare, rimuovere i dati;

                          Io li inserisco, non modifico e non rimuovo;

                          vecchio frac ha scritto:

                          un file di consultazione (in locale. Ogni utente ha la propria copia e usa quella) che si occupa di accedere in sola lettura ai dati e li presenta all'utente;

                          non ho capito.. Cartel2 è sempre in aggiornamento, nel senso che i dati che aggiungo in Cartel2 da Cartel1 avviene quasi ogni giorno..

                          vecchio frac ha scritto:

                          il file di database (può essere un file di Access, un file di testo, un file sqlserver, sqllite, db3 eccetera) che contiene i dati grezzi e li memorizza: gli utenti non aprono mai il file di dati ma deve essere accessibile a tutti in na cartella condivisa con i permessi almeno di lettura.

                          devo creare un file Access, sql ecc in modo che siano sempre aggiornati (quindi sarebbe la copia) mentre l'originale (excel) è in mio possesso?

                          Ho capito bene? .... Come si fa a collegare Excel ad Access in modo da aggiungere i dati e le formule che sono presenti nelle celle?

                          Ebbene sì... di Access non so un emerito biiiip   qui mi devi aiutare tanto...  

                          #17337 Risposta

                          vecchio frac
                          Senior Moderator
                          • Sfida #1
                            145 pts

                            Gret ha scritto:

                            Io li inserisco, non modifico e non rimuovo

                            Inserire è comunque una modifica al database, no? 🙂

                            Gret ha scritto:

                            non ho capito

                            Intendevo dire: la base dati è un file separato. Tu amministri, hai la gestione della base dati dal tuo file di amministrazione. L'utente ha in mano una copia locale (un client) che può solo allacciarsi ai dati e consultarli, ma in realtà non apre la vera base di dati.

                            Gret ha scritto:

                            devo creare un file Access, sql ecc in modo che siano sempre aggiornati (quindi sarebbe la copia) mentre l'originale (excel) è in mio possesso?

                            Il file Access (per dire: ma può essere qualunque tipo di database) è una banale base dati, una volta creata la struttura della tabella non devi più aprirlo nè toccarlo. Infatti gestirai i dati dal tuo programma Excel che sarà anche l'amministratore della base dati. I tuoi utenti avranno un file Excel client, cioè cliente, fruitore, della base dati (ma l'accesso sarà per loro trasparente, perchè ci penserà Excel a connettersi alla base dati e a mostrare i dati aggiornati). 

                            Gret ha scritto:

                            Come si fa a collegare Excel ad Access in modo da aggiungere i dati e le formule che sono presenti nelle celle?

                            Si fa con una connessione mediante ADO. Nota comunque che i dati passano da Excel a Access una volta calcolati, quindi non trasferisci formule ma il loro risultato.

                            Peraltro vorrei allegare qui due file Excel, uno di gestione e uno di consultazione (da provare stando nella stessa cartella per esempio il Desktop). Prova a vedere se in qualche modo questa è una strada più percorribile per te.

                            Allegati:
                            You must be logged in to view attached files.
                            #17342 Risposta
                            Gret
                            Gret
                            Partecipante

                              Grazie mille per i file ma non funzionano.  

                              Li ho salvati entrambi in desktop, aperti entrambi, ho aggiunto i dati in Cartel1 e appena clicco sul pulsante esce un messaggio di errore che cita "Scusa ma non riusciamo a trovare il file al percorso blablabla.." evidenziando in giallo questa riga:

                              Set wb2 = Workbooks.Open(ThisWorkbook.Path & "\Cartel2 - CLIENT.xlsx")

                               

                              #17343 Risposta

                              vecchio frac
                              Senior Moderator
                              • Sfida #1
                                145 pts

                                E' solo un problema di nome di file. Attento agli spazi in mezzo, metti il nome preciso del file xlsx che si è scaricato (il forum carica i file allegati inserendo dei trattini al posto degli spazi). Quando ho fatto le mie prove il file si chiamava "Cartel2 - CLIENT.xlsx", adesso può darsi che il file che hai scaricato si chiami "Cartel2-CLIENT.xlsx". 

                                O rinomini il file mettendo gli spazi o cambi il codice rimuovendoli 🙂

                                #17344 Risposta
                                Gret
                                Gret
                                Partecipante

                                  Ok riprovo  

                                  #17345 Risposta
                                  Gret
                                  Gret
                                  Partecipante

                                    Ora va meglio , il problema erano gli spazi effettivamente. Che testa di cavolo .

                                    Questa mi sembra una strada più che percorribile per le mie conoscenze.  

                                    Ora vorrei chiederti una cosa se permetti: ho notato che il file sta in condivisione giusto...è vero che excel annulla la macro per la protezione del file se lo si condivide?

                                     

                                    #17346 Risposta

                                    vecchio frac
                                    Senior Moderator
                                    • Sfida #1
                                      145 pts

                                      In effetti ho avuto qualche problema con Protect/Unprotect dal primo Workbook verso quel file condiviso. Mi sa che non si può fare. Del resto comunque qualunque cosa succeda, tu dal tuo file sovrascrivi sempre il contenuto del secondo file, perciò non ha importanza che qualcuno scriva o cancelli qualcosa dal file condiviso, dal momento che tu con la macro lo ricostruisci partendo dai dati del tuo foglio.

                                      #17347 Risposta
                                      Gret
                                      Gret
                                      Partecipante

                                        Ho capito, quindi lascio stare la storia della password ... Peccato..  

                                        Comunque ora mi studio come funziona l'ADO con Access.

                                        Ti ringrazio per avermi suggerito il metodo e buon weekend  

                                        #17348 Risposta

                                        vecchio frac
                                        Senior Moderator
                                        • Sfida #1
                                          145 pts

                                          Per aiutarti più efficacemente prova a costruire un file Excel di dati che rifletta la tua situazione reale (ma con dati fittizi). La struttura della tabella che ne deriva è praticamente fatta (senza contare che Access può importare in automatico la struttura dei dati da Excel in una tabella sua).

                                          #17349 Risposta
                                          Gret
                                          Gret
                                          Partecipante

                                            Ok, ci provo  

                                            #17351 Risposta
                                            albatros54
                                            albatros54
                                            Moderatore
                                              36 pts

                                              Ciao a tutti, scusate se mi intrometto, ho seguito  la discussione e mi sono permesso di aggiungere qualche riga di codice a quello postato da VF(saluto)che immette la PW nel file client e al momento della modifica la togli, rimettendola prima di chiudere il file.Posto il codice , se ho capito, altrimenti abbiamo .....

                                              Option Explicit
                                              
                                              
                                              Public Sub aggiorna()
                                                  Dim wb1 As Workbook
                                                  Dim wb2 As Workbook
                                                  Dim SH As Worksheet
                                                  Const PWORD As String = "pippo"
                                                  Set wb1 = ThisWorkbook
                                              
                                                  If MsgBox("Aggiornare il file di destinazione?", vbInformation + vbYesNo, "Nuovi dati") = vbYes Then
                                                      Application.ScreenUpdating = False
                                                      Application.Cursor = xlWait
                                                      Set wb2 = Workbooks.Open(ThisWorkbook.Path & "\Cartel1.xlsx")
                                                      Set SH = wb2.Sheets("foglio1")
                                                      With SH
                                                          .Unprotect Password:=PWORD
                                                      
                                                      wb1.Worksheets("Foglio1").Range("A4").CurrentRegion.Copy wb2.Worksheets("Foglio1").Range("A1")
                                              
                                                      
                                                          .Protect UserInterfaceOnly:=True, _
                                                                   Password:=PWORD
                                                      End With
                                                      wb2.Close True
                                                      Set wb2 = Nothing
                                                      Application.ScreenUpdating = True
                                                      Application.Cursor = xlDefault
                                                  End If
                                              
                                              End Sub
                                              

                                               

                                              Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                                              Sempre il mare, uomo libero, amerai!
                                              ( Charles Baudelaire )
                                              #17353 Risposta

                                              vecchio frac
                                              Senior Moderator
                                              • Sfida #1
                                                145 pts

                                                albatros54 ha scritto:

                                                .Protect UserInterfaceOnly:=True,  Password:=PWORD

                                                A me non dava esito positivo, ma forse questa era la sintassi corretta (UserInterfaceOnly) 🙂

                                                #17355 Risposta

                                                vecchio frac
                                                Senior Moderator
                                                • Sfida #1
                                                  145 pts

                                                  Comunque a me questa impostazione piace poco... @gret, hai forse delle formattazioni particolari sul file che tutti condividono, o puoi semplicemente mostrare in consultazione i dati come sono memorizzati?

                                                  Altra domanda, se fosse di studiare una soluzione diversa, i tuoi utenti sarebbero in grado di attivare le macro per far girare del codice?

                                                  #17362 Risposta
                                                  Gret
                                                  Gret
                                                  Partecipante

                                                    Buongiorno a tutti,

                                                    albatros54 ha scritto:

                                                    Ciao a tutti, scusate se mi intrometto

                                                    hai fatto bene ad intrommetterti tranquillo/a .. più soluzioni ci sono meglio è .. ti ringrazio per il codice, lo proverò appena posso.

                                                    vecchio frac ha scritto:

                                                    hai forse delle formattazioni particolari sul file che tutti condividono, o puoi semplicemente mostrare in consultazione i dati come sono memorizzati?

                                                    purtroppo si: celle con formule, colori, intestazioni, calcoli vari ecc

                                                    vecchio frac ha scritto:

                                                    i tuoi utenti sarebbero in grado di attivare le macro per far girare del codice?

                                                    no, sono scarsi su questo punto di vista. Il loro livello è basato solo sulle formule. (credo)

                                                    Grazie per essere intervenuti  

                                                     

                                                    #17363 Risposta
                                                    Gret
                                                    Gret
                                                    Partecipante

                                                      albatros54 purtroppo il codice che hai postato non funziona.

                                                      Mi esce un messaggio che dice "Metodo di protezione dell'oggetto Worksheet fallito" evidenziando questa riga:

                                                      .Protect UserInterfaceOnly:=True, _
                                                                           Password:=PWORD

                                                      Ma perchè ha questo problema Excel???

                                                      Mannaggia la miseria..

                                                    LoginRegistrati
                                                    Stai vedendo 25 articoli - dal 1 a 25 (di 32 totali)
                                                    Rispondi a: Proteggere una cartella (con password) da un'altra cartella
                                                    Gli allegati sono permessi solo ad utenti REGISTRATI
                                                    Le tue informazioni:



                                                    vecchio frac - 2136 risposte

                                                    albatros54
                                                    albatros54 - 650 risposte

                                                    patel
                                                    patel - 510 risposte

                                                    Marius44
                                                    Marius44 - 409 risposte

                                                    Luca73
                                                    Luca73 - 373 risposte