Excel - Problemas con Macros en Hojas Protegidas

 
Vista:

Problemas con Macros en Hojas Protegidas

Publicado por Rovi (9 intervenciones) el 27/03/2007 17:41:12
Hola! Soy nuevo en esto y es la 1° vez que escribo. Necesitaría una mano para poder hacer funcionar una macro en una hoja protegida.

Tengo una hoja de cálculo que tiene con una macro que funciona bien. Ahora quiero proteger la hoja para dejar sólo ciertos rangos habilitados para que otros usuarios ingresen datos.

El tema es que cuando protejo la hoja, la macro deja de funcionar y tira un error (Las celdas que intenta modificar estan protegidas). Hay alguna forma de que la macro funcione sin problemas en la hoja protegida?

Muchas gracias si me pueden ayudar con esto.
Sdos.

PD: copio la macro a ver si se entiende mejor...

Sub Resaltar_Mes_IOP()
'
' Resaltar_Mes_IOP Macro
' Macro grabada el 20/03/2007 por Horacio Rovitti
'

'
Range("C4").Select
Select Case ActiveCell

Case 1

Columns("E:BP").Select
Selection.EntireColumn.Hidden = False
Selection.Interior.ColorIndex = xlNone
Range("E6:H6,H7:H304").Select
Range("H7").Activate
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Range( _
"E237:G304,E227:G234,E137:G224,E127:G134,E37:G124,E27:G34,E22:G24,E12:G19,E7:G9" _
).Select
Range("G9").Activate
With Selection.Interior
.ColorIndex = 39
.Pattern = xlSolid
End With
Range("E8").Select

Range("K1:L1,O1:P1,Q1:T1,W1:X1,AA1:AB1,AE1:AF1,AG1:AN1,AQ1:AR1,AU1:AV1,AY1:AZ1,BA1:BD1,BG1:BH1,BK1:BL1,BO1:BP1,BQ1:BX1").Select
Selection.EntireColumn.Hidden = True
Range("E8").Select

Case 2

Columns("E:BP").Select
Selection.EntireColumn.Hidden = False
Selection.Interior.ColorIndex = xlNone
Range("I6:L6,L7:L304").Select
Range("L7").Activate
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Range( _
"I237:K304,I227:K234,I137:K224,I127:K134,I37:K124,I27:K34,I22:K24,I12:K19,I7:K9" _
).Select
Range("K9").Activate
With Selection.Interior
.ColorIndex = 39
.Pattern = xlSolid
End With
Range("I8").Select

Range("E1,G1,O1:P1,Q1:T1,W1:X1,AA1:AB1,AE1:AF1,AG1:AN1,AQ1:AR1,AU1:AV1,AY1:AZ1,BA1:BD1,BG1:BH1,BK1:BL1,BO1:BP1,BQ1:BX1").Select
Selection.EntireColumn.Hidden = True
Range("I8").Select

Case...

End Select
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:Problemas con Macros en Hojas Protegidas

Publicado por Abraham Valencia (2415 intervenciones) el 27/03/2007 17:56:16
Pues simplemente, desprtotege la hoja al inicio de tu procedimeinto, y vuelvela a proteger al final. PAra ver que codigo usar, obtenlo protegiendo y desprotegiendo la hoja con la grabadora d emacros activada.

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con Macros en Hojas Protegidas

Publicado por Rovi (9 intervenciones) el 27/03/2007 20:06:17
Gracias, Abraham

Lo intente como decis antes, pero no me doy cuenta bien donde escribir esa parte del codigo en mi macro. Es decir, si no tengo protegida la hoja funciona, la macro hace su parte y termina protegiendo la hoja.

El tema es, la 2° vez que quiero hacer correr la macro, como esta protegida, por mas que le puse al comienso que desproteja la hoja, no lo hace y por tanto me tirar el error al tratar de modificar celdas protegidas. Por lo poco que entiendo, me toma la ultima instrucción antes del Sub End y no 1° la del principio.

Tb averigue que hay una instrucción solo interface usuario que en teoria me podría servir, pero de vuelta no se como incluirla en mi macro.

Yo probe de la sig. manera (te copio la macro), y como te dije, si la hoja esta protegida, la macro no la desprotege al comienzo y me tirar el error. Sólo anda una vez cuando no eta protegida.
La verdad entiendo poco y estoy perdido...
Si me podes ubicar un poco te agradezco.
Sdos. y gracias

Sub Resaltar_Mes_IOP()
'
' Resaltar_Mes_IOP Macro
' Macro grabada el 20/03/2007 por Horacio Rovitti
'

'

Worksheets("IOP_Clorox_2007").Protect UserInterfaceOnly:=True o acá puse
Activesheet.Unprotect Esta es la que entiendo no hace, no desprotege la hoja para hacer el resto

Dim valor As Byte
valor = Range("C4").Value

Select Case valor

Case 1

Columns("E:BP").Select
Selection.EntireColumn.Hidden = False
Selection.Interior.ColorIndex = xlNone
Range("E6:H6,H7:H304").Select
Range("H7").Activate
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Range( _
"E237:G304,E227:G234,E137:G224,E127:G134,E37:G124,E27:G34,E22:G24,E12:G19,E7:G9" _
).Select
Range("G9").Activate
With Selection.Interior
.ColorIndex = 39
.Pattern = xlSolid
End With
Range("E8").Select

Range("K1:L1,O1:P1,Q1:T1,W1:X1,AA1:AB1,AE1:AF1,AG1:AN1,AQ1:AR1,AU1:AV1,AY1:AZ1,BA1:BD1,BG1:BH1,BK1:BL1,BO1:BP1,BQ1:BX1").Select
Selection.EntireColumn.Hidden = True
Range("E8").Select

Case 2

End Select

ActiveSheet.Protect Esta es la única que toma y anda bien una sola vez, la ! pero priemro no debe estar protegida la hoja

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:Problemas con Macros en Hojas Protegidas

Publicado por Abraham Valencia (2415 intervenciones) el 27/03/2007 21:15:44
Sub Resaltar_Mes_IOP()

ActiveSheet.Unprotect "tuclaveaquiyentrecomillas"

Dim valor As Byte
valor = Range("C4").Value

Select Case valor

Case 1

Columns("E:BP").Select
Selection.EntireColumn.Hidden = False
Selection.Interior.ColorIndex = xlNone
Range("E6:H6,H7:H304").Select
Range("H7").Activate
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Range( _
"E237:G304,E227:G234,E137:G224,E127:G134,E37:G124,E27:G34,E22:G24,E12:G19,E7:G9" _
).Select
Range("G9").Activate
With Selection.Interior
.ColorIndex = 39
.Pattern = xlSolid
End With
Range("E8").Select

Range("K1:L1,O1:P1,Q1:T1,W1:X1,AA1:AB1,AE1:AF1,AG1:AN1,AQ1:AR1,AU1:AV1,AY1:AZ1,BA1:BD1,BG1:BH1,BK1:BL1,BO1:BP1,BQ1:BX1").Select
Selection.EntireColumn.Hidden = True
Range("E8").Select

Case 2

End Select

ActiveSheet.Protect "tuclaveaquiyentrecomillas", DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con Macros en Hojas Protegidas

Publicado por Rovi (9 intervenciones) el 27/03/2007 21:42:37
Abraham, sos un genio, te agradezco la mano que me diste.
Muchas gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problemas con Macros en Hojas Protegidas

Publicado por Grettel (1 intervención) el 19/02/2015 15:52:36
Hola, tengo un problema...
Grabe una macro para insertar una fila y me jalara las formulas que tenia en mi primera fila (por decirlo asi),
tengo un boton vinculado a mi macro pero debo proteger mi hoja y resulta que la macro no me funciona. Ayuda¡¡¡¡
Copio mi macro

Sub cargarinserto()
'
' inserto Macro
'
' Acceso directo: CTRL+i
'
Rows("3:3").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A3:BC3").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlEdgeTop).LineStyle = xlNone
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThick
End With
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
ActiveWindow.ScrollColumn = 50
ActiveWindow.ScrollColumn = 48
ActiveWindow.ScrollColumn = 47
ActiveWindow.ScrollColumn = 45
ActiveWindow.ScrollColumn = 42
ActiveWindow.ScrollColumn = 38
ActiveWindow.ScrollColumn = 36
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 7
Range("A1:F35").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlDouble
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThick
End With
Range("A2:BB2").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlDouble
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThick
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlDouble
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThick
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThick
End With
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("F3").Select
ActiveWindow.ScrollColumn = 47
ActiveWindow.ScrollColumn = 45
ActiveWindow.ScrollColumn = 41
ActiveWindow.ScrollColumn = 38
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 7
Range("G4:BC4").Select
Selection.AutoFill Destination:=Range("G3:BC4"), Type:=xlFillDefault
Range("G3:BC4").Select
Range("BA6").Select
ActiveWindow.ScrollColumn = 52
ActiveWindow.ScrollColumn = 50
ActiveWindow.ScrollColumn = 47
ActiveWindow.ScrollColumn = 44
ActiveWindow.ScrollColumn = 38
ActiveWindow.ScrollColumn = 34
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 7
Range("G3").Select
Selection.ClearContents
Range("H3").Select
Selection.ClearContents
Range("J3").Select
Selection.ClearContents
Range("L3").Select
Selection.ClearContents
Range("N3").Select
Selection.ClearContents
Range("F3").Select


End Sub


Cuando voy a ejecutar la macro con mi boton me pone en amarillo lo siguiente
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar