Erro no array
Quando coloco somente Jan funciona
Tentei também ThisWorkbook.Sheets(sheetsArray(x)).Range mas sem sucesso
Dim sheetsArray As Variant sheetsArray = Array("Jan, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Out, Nov, Dez") For Each x In sheetsArray ThisWorkbook.Sheets(x).Range("B7").FormulaLocal = "123.456" ThisWorkbook.Sheets(x).Range("F7").FormulaLocal = "Fulano" Next x
Obrigado !
Tente assim :
Dim sheetsArray As Variant sheetsArray = Array("Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez") For Each x In sheetsArray With Sheets(x) .Range("B7").FormulaLocal = "123.456" .Range("F7").FormulaLocal = "Fulano" End With Next x
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Mauro recebi mensagem de proteção
Mas como pode ver no código já está desprotgendo e protegendo com esse código abaixo
Sub Desprotege() ActiveSheet.Unprotect Password:="123" End Sub Sub Protege() ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowInsertingRows:=True, Password:="123" End Sub
Reparei que somente acontece quando executa macro para várias planilhas ao mesmo tempo, como é o caso
Use desta forma:
Dim sheetsArray As Variant sheetsArray = Array("Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez") For Each x In sheetsArray With Sheets(x) .Unprotect Password:="123" .Range("B7").FormulaLocal = "123.456" .Range("F7").FormulaLocal = "Fulano" .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowInsertingRows:=True, Password:="123" End With Next x
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Então eu fiz isso, continua aparecendo a mensagem !
Todas as planilhas estão bloqueada desse jeito - Modulo com nome Secure e depois chamei da seguinte forma conforme o codigo no final
Esse é código do modulo com o nome Secure
Sub Desprotege() ActiveSheet.Unprotect Password:="123" End Sub Sub Protege() ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowInsertingRows:=True, Password:="123" End Sub Chamei na planilha Call Secure.Desprotege Call Secure.Protege
Voce deve chamar a rotina que desprotege em cada loop do array, não antes; que e o que aparenta estar fazendo
For Each x In sheetsArray With Sheets(x) Call Secure.Desprotege '.Unprotect Password:="123" .Range("B7").FormulaLocal = "123.456" .Range("F7").FormulaLocal = "Fulano" '.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowInsertingRows:=True, Password:="123" Call Secure.Protege
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
A rotina de desproteger/proteger remetem/atuam na sheet activa (activesheet), então sem alterar essas rotinas, ative a shhet(x)
Sub Perfil() Dim sheetsArray As Variant sheetsArray = Array("Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez") For Each x In sheetsArray Sheets(x).Activate With Sheets(x) Call Secure.Desprotege .Range("B7").FormulaLocal = "123.456" .Range("F7").FormulaLocal = "Maria" Call Secure.Protege End With Next x End Sub
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Funcionou ! Obrigado !