desproteger hoja a través de código

23/07/2009 - 16:10 por JForero | Informe spam
Buenos días

Tengo la hoja de calculo hoja1 en donde a través de un boton copio los datos
a otra hoja (hoja inventario) la hoja inventario debe estar protegida para
que el usuario no haga modificaiciones pero si necesito que cuando de click
en el boton que tengo en la hoja1, me desprotega la hoja mientras graba y
actualiza los datos que estoy copiando. A continuación parte del código con
el que hago ese proceso.

Private Sub btnIngresaarVentas_Click()
Dim iFila As Long
Dim ws As Worksheet
Set ws = Worksheets("Inventario")
'Encuentra la siguiente fila vacia
iFila = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'Copia los datos a la hoja
ws.Cells(iFila, 1).Value = "Venta"
ws.Cells(iFila, 2).Value = Worksheets("Movimiento").Range("j3")
ws.Cells(iFila, 3).Value = Worksheets("Movimiento").Range("j4")
etc..

gracias

jorgef

Preguntas similare

Leer las respuestas

#1 Abraham
23/07/2009 - 16:57 | Informe spam
ws.Unprotect "tu clave"
'aqui tu resto de codigo
ws.Protect "tuclave"

Abraham
Respuesta Responder a este mensaje
#2 JC
23/07/2009 - 17:08 | Informe spam
Hola:
Yo tengo en varias macros la siguiente solución:

Private Sub btnIngresaarVentas_Click()
Worksheets("hoja inventario").Unprotect ("tucontraseña")
Dim iFila As Long
Dim ws As Worksheet
Set ws = Worksheets("Inventario")
'Encuentra la siguiente fila vacia
iFila = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'Copia los datos a la hoja
ws.Cells(iFila, 1).Value = "Venta"
ws.Cells(iFila, 2).Value = Worksheets("Movimiento").Range("j3")
ws.Cells(iFila, 3).Value = Worksheets("Movimiento").Range("j4")
etc..
Worksheets("hoja inventario").Protect Password:="tucontraseña",
DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Espero sinceramente que te sirva.

JC


"JForero" escribió:

Buenos días

Tengo la hoja de calculo hoja1 en donde a través de un boton copio los datos
a otra hoja (hoja inventario) la hoja inventario debe estar protegida para
que el usuario no haga modificaiciones pero si necesito que cuando de click
en el boton que tengo en la hoja1, me desprotega la hoja mientras graba y
actualiza los datos que estoy copiando.
Respuesta Responder a este mensaje
#3 Héctor Miguel
24/07/2009 - 05:00 | Informe spam
hola, Jorge !

Tengo la hoja de calculo hoja1 en donde a través de un boton copio los datos a otra hoja (hoja inventario)
la hoja inventario debe estar protegida para que el usuario no haga modificaiciones
pero si necesito que cuando de click en el boton que tengo en la hoja1
me desprotega la hoja mientras graba y actualiza los datos que estoy copiando...



para el caso de acciones que necesites hacer por macro con la hoja protegida (y oculta ?)...
prueba a (re)proteger la hoja en el evento '_open' del ThisWorkbook
con la opcion de proteger solo la interfaz con el usuario +/- asi...

a) en excel 97 y 2000 NO necesitas repetir el password, es suficiente con poner:
Private Sub Workbook_Open()
Worksheets("hoja1").Protect UserInterfaceOnly:=True
End Sub

b) a partir de excel 2002 [xp] SI es requisito repetir el password
Private Sub Workbook_Open()
Worksheets("hoja1").Protect _
PassWord:="la MISMA cOntRaSe#a qUe lE pUsISte", _
UserInterfaceOnly:=True
End Sub

c) si se trata de varias hojas (suponiendo una misma clave para todas)...
Private Sub Workbook_Open()
Dim Hoja As Worksheet
For Each Hoja In Worksheets(Array("hoja1", "hoja4", "hoja6"))
Hoja.Protect PassWord:="123", UserInterfaceOnly:=True
Next
End Sub

(practicamente todo) lo que hagas por codigo... pasara sin problemas
excepto ciertas cosillas relacionadas con ordenaciones, insertar filas/columnas, objetos incrustados...
(y algunas mas que requeriran de otro tipo de administraciones)

saludos,
hector.
Respuesta Responder a este mensaje
#4 Sergio Eduardo
24/07/2009 - 17:47 | Informe spam
On 23 jul, 22:00, "Héctor Miguel"
wrote:
hola, Jorge !

> Tengo la hoja de calculo hoja1 en donde a través de un boton copio los datos a otra hoja (hoja inventario)
> la hoja inventario debe estar protegida para que el usuario no haga modificaiciones
> pero si necesito que cuando de click en el boton que tengo en la hoja1
> me desprotega la hoja mientras graba y actualiza los datos que estoy copiando...

para el caso de acciones que necesites hacer por macro con la hoja protegida (y oculta ?)...
prueba a (re)proteger la hoja en el evento '_open' del ThisWorkbook
con la opcion de proteger solo la interfaz con el usuario +/- asi...

a) en excel 97 y 2000 NO necesitas repetir el password, es suficiente con poner:
Private Sub Workbook_Open()
  Worksheets("hoja1").Protect UserInterfaceOnly:=True
End Sub

b) a partir de excel 2002 [xp] SI es requisito repetir el password
Private Sub Workbook_Open()
  Worksheets("hoja1").Protect _
    PassWord:="la MISMA cOntRaSe#a qUe lE pUsISte", _
    UserInterfaceOnly:=True
End Sub

c) si se trata de varias hojas (suponiendo una misma clave para todas)...
Private Sub Workbook_Open()
  Dim Hoja As Worksheet
  For Each Hoja In Worksheets(Array("hoja1", "hoja4", "hoja6"))
    Hoja.Protect PassWord:="123", UserInterfaceOnly:=True
  Next
End Sub

(practicamente todo) lo que hagas por codigo... pasara sin problemas
excepto ciertas cosillas relacionadas con ordenaciones, insertar filas/columnas, objetos incrustados...
(y algunas mas que requeriran de otro tipo de administraciones)

saludos,
hector.



oye y com haces que se ejecute la opcion c de esta respuesta
Respuesta Responder a este mensaje
#5 Héctor Miguel
24/07/2009 - 19:30 | Informe spam
hola, Sergio !

oye y com haces que se ejecute la opcion c de esta respuesta



copiando/pegando (o escribiendo) el procedimiento en el modulo de codigo del objeto "ThisWorkbook" en el editor de VBA
(y obviamente, haciendo las adaptaciones del caso, segun cuales sean tus hojas "reales" ?)
el evento '_open' se (auto)ejecuta cada vez que abres el libro de excel

saludos,
hector.

__ OP __
Tengo la hoja de calculo hoja1 en donde a través de un boton copio los datos a otra hoja (hoja inventario)
la hoja inventario debe estar protegida para que el usuario no haga modificaiciones
pero si necesito que cuando de click en el boton que tengo en la hoja1
me desprotega la hoja mientras graba y actualiza los datos que estoy copiando...



para el caso de acciones que necesites hacer por macro con la hoja protegida (y oculta ?)...
prueba a (re)proteger la hoja en el evento '_open' del ThisWorkbook
con la opcion de proteger solo la interfaz con el usuario +/- asi...

a) en excel 97 y 2000 NO necesitas repetir el password, es suficiente con poner:
Private Sub Workbook_Open()
Worksheets("hoja1").Protect UserInterfaceOnly:=True
End Sub

b) a partir de excel 2002 [xp] SI es requisito repetir el password
Private Sub Workbook_Open()
Worksheets("hoja1").Protect _
PassWord:="la MISMA cOntRaSe#a qUe lE pUsISte", _
UserInterfaceOnly:=True
End Sub

c) si se trata de varias hojas (suponiendo una misma clave para todas)...
Private Sub Workbook_Open()
Dim Hoja As Worksheet
For Each Hoja In Worksheets(Array("hoja1", "hoja4", "hoja6"))
Hoja.Protect PassWord:="123", UserInterfaceOnly:=True
Next
End Sub

(practicamente todo) lo que hagas por codigo... pasara sin problemas
excepto ciertas cosillas relacionadas con ordenaciones, insertar filas/columnas, objetos incrustados...
(y algunas mas que requeriran de otro tipo de administraciones)
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida