Modificare celle su più fogli
Hai un problema con Excel? 
Modificare celle su più fogli
di tommy270881 data: 07/05/2015 18:33:59
Ringrazio anticipatamente chi leggerà il mio post.
Il problema che vorrei risolvere è condurre l'operatività del codice sottostante per una cartella di lavoro da 250 fogli.
Il risultato al termine dell'esecuzione della macro dovrebbe quindi essere la seguente:
Nel primo foglio nella cella A6 sia riportato il valore 1
Nel secondo foglio nella cella A6 sia riportato il valore 2
Nel terzo foglio nella cella A6 sia riportato il valore 3
e via di seguito.
I fogli sono stati creati con la protezione nella cella A6 quindi è necessario ogni volta toglierla e ripristinarla.
Ringrazio ancora se qualcuno avrà voglia di rispondere.
'Seleziona il foglio 1
Sheets("1").Select
'Toglie la protezione al foglio
ActiveSheet.Unprotect
'Seleziona la cella A6
Range("A6").Select
'Inserisce il numero progressivo
ActiveCell.FormulaR1C1 = "1"
'Ripristina la protezione del foglio
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingRows:=True |
di Marius44 data: 07/05/2015 19:23:35
Ciao. Scusa, ma forse non ho capito bene.
Se devi inserire un numero progressivo sempre nella stessa cella penso sia sufficiente un ciclo che parta da 1 e arrivi al limite superiore dei fogli della cartella.
Ritengo che intendevi altro. Comunque sotto ti indico una implementazione alla tua macro.
Fammi sapere.
for i 1 to sheets.count
sheets(i).select
activesheets.unprotect
range("A6")= i
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingRows:=True
next i
|
di tommy270881 data: 10/05/2015 10:43:16
Ciao Marius sono riuscito solo ora a lavorare sulla tua soluzione. Volevo ringraziarti per il tuo contributo.
Nella macro che mi hai scritto ho effettuato alcune modifiche:
- for i 1 to sheets.count ho scritto for i = 1 to sheets.count
- Utilizzando l'istruzione activesheets.unprotect la macro non funzionava. Così ho sostituito il codice nel modo seguente: Sheets(i).Unprotect
- Ho modificato anche il range della cella dato che avevo fatto un'unione tra A6 e B6. Quindi da Range ("A6") ho scritto Range ("A6:B6").
Ovviamente scrivo tutto questo per coloro che leggendo lo storico della discussione possano comprendere meglio l'argomento che abbiamo trattato.
Ti ringrazio ancora molto per il tuo suggerimento. Ho risolto il mio problema e sicuramente ho imparato qualcosa di nuovo.
Grazie ancora.
Sub RinominaCellaA6()
For i = "1" To Sheets.Count
Sheets(i).Select
Sheets(i).Unprotect
Range("A6:B6") = i
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingRows:=True
Next i
End Sub |
Vuoi Approfondire?