• 👏 Bienvenido a nuestra comunidad Excel

    ¿Todavía no estás registrado? 😲

    Registrate gratis aquí y podrás:

    💪 Hacer preguntas a los expertos
    ⬇️ Descargar ejemplos y plantillas
    🏅 
    Acceder a contenidos premium

Proteger hoja con macros para insertar desde un formulario

carlaferrerj

New member
Buenas tardes.
Tengo dos hojas en excel, una con un formulario hecho con macros para ingresar facturas, y otra en la que se cargan los datos. Necesito una manera de proteger la segunda hoja para que solo se pueda ingresar información por medio del formulario, porque si le doy a proteger hoja no me ejecuta las macros. Gracias de antemano!!
 

Adrian

Well-known member
Hola, protege la hoja, al iniciar el formulario desprotege y al momento de cerrar el formulario protege nuevamente.
Código:
Private Sub UserForm_Initialize()
Hoja2.Protect Password:="123", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
ActiveSheet.Unprotect Password:="123"
End Sub
 

carlaferrerj

New member
holaa! mi formulario no lo hice con userform si no en módulos, es decir, con macros. tendría que usar el mismo código al inicio y final de cada macro o sería uno distinto?
 

Adrian

Well-known member
Sí, pero habría que ver en que macros, por ejemplo:
Sub Macro1()
desproteger
Call macro2
Call macro3
proteger
End Sub

Sub Macro2()

End Sub

Sub Macro3()

End Sub

Acá sólo en macro uno se protege y desprotege, se entiende la idea?
 

carlaferrerj

New member
la macro uno vendría siendo dónde se ejecutaría el código, cierto? es decir, debería crear una macro solo para proteger y desproteger la hoja?
 

Adrian

Well-known member
Macro1 es la macro que "llama" a las otras macros, la macro principal. Pero existen innumerables casos, no puedo puntualizar lo que necesitas puntualmente.
De última (no es eficiencia) protege al inicio y desproteger en todas las macros
 

Héctor Miguel

Well-known member
hola, a ambos !
Necesito una manera de proteger la segunda hoja para que solo se pueda ingresar información por medio del formulario, porque si le doy a proteger hoja no me ejecuta las macros
también puedes dejar esa hoja protegida (de siempre) y aplicar lo siguiente en el módulo de código del "ThisWorkbook"
Código:
Private Sub Workbook_Open()
  Worksheets("hoja2").Protect _
    PassWord:="la MISMA cOntRaSe#a qUe lE pUsISte", _
    UserInterfaceOnly:=True
End Sub
solo cambia de "hoja2" por tu hoja real

(prácticamente todo) lo que hagas por código... pasara sin problemas
excepto ciertas cosillas relacionadas con ordenaciones, insertar filas/columnas, objetos incrustados...
(y algunas más que requerirán de otro tipo de administraciones)
 
Arriba