Forum di Excel e VBA, per condividere esperienze e risolvere problemi su: Excel, Word, Access, Power Point, Microsoft Office, macro, Visual Basic e Visual Studio.
Foglio bloccato di Sara (utente non iscritto) data: 11/12/2014 15:47:49
Buongiorno a tutti, ho creato una macro che mi crea automaticamente le copie dei fogli, variandomi alcuni dati.
Questo foglio ha celle bloccate in modo che solo alcini dati siano modificabili.
Il problema sta proprio in questo! Se il foglio e bloccato, mi compare l'errore run-time '1004' la cella o grafico che stai tentando di copiare è protetto e di sola lettura.
Se lo sblocco, copia senza problemi il foglio ma è possibile modificare dati che non devono essere toccati.
Come posso ovviare al problema?
di Lucas87 data: 11/12/2014 16:23:34
Ciao
Hai 2 possibilità.
1) È macchinosa e meno elegante.
Non devi fare altro che sbloccare il foglio, eseguire il codice, bloccare il foglio.
Quindi
Worksheets(1).Unprotect
...codice...
Worksheets(1).Protect
2)Togli la protezione al foglio. In ThisWorkbook, per l'evento Open, aggiungi questa riga
Worksheets(1).Protect , userinterfaceonly:=True
che blocca il foglio ma permette comunque di fare qualsiasi operazione tramite codice.
Con la prima soluzione devi fare attenzione a quando sblocchi e blocchi il foglio, con la seconda non ti devi preoccupare di niente.
di Sara (utente non iscritto) data: 11/12/2014 16:37:25
Sei stato gentilissimo mah... Credo di non aver capito nulla...
Se creo e allego un fille molto semplificativo del mio problema... Mi potresti modificare la macro? Magari mi risulterà più facile capire il procedimento.
Sono più interessata alla secinda soluzione
di Lucas87 data: 11/12/2014 16:54:10
Guarda il file
Foglio bloccato.xls
Nell'editor di VBA, sulla SX trovi ThisWorkbook (Questa_cartella_di_lavoro).
Quello è il codice che permette di mantenere il foglio bloccato e riuscire comunque a fare operazioni tramite codice.
Puoi notare che il foglio è bloccato, non riesci a scrivere, però premendo il pulsante, il contenuto di A1 incrementa.
di Sara (utente non iscritto) data: 11/12/2014 17:20:46
Io però ho la necessità di avere celle sbloccate su cui scrivere i dati.
È possibile?
di Sara (utente non iscritto) data: 11/12/2014 17:21:43
Ho allegato un file PROVA x capirci meglio
di Sara (utente non iscritto) data: 11/12/2014 17:43:52
Ho notato che il problema del foglio bloccato e quindi l'errore, si presenta non se la macro copia i dati da un foglio bloccato, ma si presenta quando va a scrivere o aggiornare i dati su un foglio bloccato.
È questo che io vorrei baipassare....
di Lucas87 data: 11/12/2014 18:12:16
Dalla situazione che hai nel tuo foglio non cambia nulla, se non il fatto che a bloccare il foglio non sei più tu ma il codice.
Se vuoi poter lavorare comunque su alcune celle, le selezioni e nella scheda protezione di "Formato celle" togli il flag da "Bloccata". Poi salvi e chiudi il foglio. Aprendolo nuovamente il codice andrà a proteggere il foglio. Le celle che hai scelto potranno essere modificate e la tua macro potrà agire indisturbata riuscendo a modificare anche le celle bloccate.
Il codice che ho usato però agisce solo sul foglio1 per estenderlo agli altri fogli va modificato in
For Each sh In Worksheets
sh.Protect , userinterfaceonly:=True
Next
di Sara (utente non iscritto) data: 11/12/2014 19:03:18
Gentilissimo.... Era quello il codice che serviva a me