Usar la macro con la hoja protegida

Tengo una consulta muchas veces habilito una macro pero cuando tengo la hoja que esta protegida con contraseña y presiono la macro no se ejecuta, para ello tengo que desproteger la hoja . Ustedes saben si se puede usar la macro con la hoja bloquea o tendría que desbloquearlo para poder usar la macro

1 respuesta

Respuesta
1

Hazlo así:

'Desproteges al inicio

Sheets("Hoja1").Unprotect "tu_clave"

'Proteges al final
Sheets("Hoja1").Protect "tu_clave"

Obvio reemplaza por el nombre de tu hoja y por tu clave. Comentas

Abraham Valencia

¡Gracias! Muchas Gracias me sirvió de mucho una consulta más por ejemplo usted vio mi post anterior con fotos yo tengo una hoja donde coloco muchos botones y el trabajo pero me gustaría saber si cada botón puedo también cambiarlo a la vez de nombre osea que si mi hoja se pongo otro nombre a mi botón también se ponga el mismo nombre ejemplo.: ¿Mi botón se llama Hoja1 y mi hoja 1 me gustaría que mi botón se llame igual que mi hoja y cambie conforme cambie el nombre de mi hoja se pude o no?

No me queda claro, tienes una hoja con muchos botones y luego ¿en cada una de las otras hojas hay un solo botón? ¿Hay dos? ¿Son botones de formularios o ACtiveX?

Comentas

Abraham Valencia

Son botones de formulario que le active una macro a cada uno pero me gustaría saber si se puede cambiar el nombre de ese botón a la par con el nombre de la hoja para que no salga hoja 1 sino 1... si cambio el 1 por Hola... que el botón igual diga Hola no se si podrá sino normal pero agradecía su ayuda.

Podría hacerse pero tendrías que tener el nombre de la hoja siempre en una celda. Vamos a suponer que tienes esto en "D4":

=DERECHA(CELDA("nombrearchivo",A1),LARGO(CELDA("nombrearchivo",A1))-HALLAR("]",CELDA("nombrearchivo",A1)))

Con eso en "D4" tendremos siempre el nombre de la celda, así lo cambies (ojo, yo uso 'comas' como separador de argumento, quizá tú uses 'punto y coma')

Vamos a suponer que tu botón de formulario es el "Shape" de índice número uno (1), entonces, en el evento "Activate" de la hoja colocamos esto:

Private Sub Worksheet_Activate()
If ActiveSheet.Shapes(1).Name <> ActiveSheet.Name Then
ActiveSheet.Shapes(1).Name = ActiveSheet.Name
End If
End Sub

Comentas

Abraham Valencia

en mi boton donde dice Hoja1 esta esta con este codigo donde insertaria su codigo por el el otro de =DERECHA(CELDA("nombrearchivo",A1),LARGO(CELDA("nombrearchivo",A1))-HALLAR("]",CELDA("nombrearchivo",A1))) esta bien ya lo hize solo falta el ultimo paso no entendi bien eso del Shapes

Sub hoja1()
Application.ScreenUpdating = False
Sheets(1).Unprotect "20"
'
' hoja1 Macro
'

'
Sheets(1).Select
Cells.Select
Selection.Locked = True
Selection.FormulaHidden = False
Range("G8:H8").Select
ActiveCell.FormulaR1C1 = "ZCP"
Range("G9:H9").Select
ActiveCell.FormulaR1C1 = "=RC[-4]"
Range("M23:M26").Select
ActiveCell.FormulaR1C1 = "OK"
Range("E7:H7").Select
Sheets("Repli").Select
Sheets(1).Protect "20"
Application.ScreenUpdating = True
End Sub

Olvídate de la fórmula, al final la mencioné pero no la usé y olvidé borrarlo del mensaje que puse aquí. Solo usa el código del evento enviado.

Al igual que las hojas, los botones de formulario tienen un índice pero son parte de una colección llamada "Shapes", entonces, yo asumo que tu botón es el del indice uno: Shapes(1)

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas