Saltar al contenido

Deshabilitar boton "desbloquear hoja" desde vba?


head777

Recommended Posts

publicado

Saludos y muy buenos dias!

Veran, necesito de su apoyo en una duda que la verdad, no se por donde entrarle.

El problema es el siguiente, tengo una macro donde tengo un formulario(Es decir varios textbox, y un boton) en una hoja de excel. En ellos lo que hago es llenar la informacion que necesito, como por ejemplo fecha, montos, nombre del proveedor, etc.

Ahora bien, cuando le doy click en guardar hago una copia de la informacion y la pego en otra hoja de excel para tener una bitacora, y para evitar problemas de alteracion de la informacion o que la manipulen hago lo siguiente.


'-- Desprotegemos la Hoja.
Sheets("Reporte").Unprotect
Sheets("Reporte").Unprotect Password:="1"


Sheets("Reporte").Range("A50000").End(xlUp)(2).Value = TextBox2.Value 'Numero Comprobante

'-- Protegemos la Hoja.
Sheets("Reporte").Protect
Sheets("Reporte").Protect Password:="1"
[/CODE]

Si se fijan, lo que hago es muy sencillo por que desbloqueo la hoja de excel que es la bitacora, escribo y la bloqueo nuevamente.

Ahora, el punto es que jugando con el, me he dado cuenta que si unicamente le dan click al boton que esta en el menu "Revisar" => "Desproteger Hoja" ... Pues, la desbloquea sin ningun problema y sin pass alguno :(

Ese es mi gran dilema, que no se como hacer por que la hoja esta protegida a menos que alguien de click a ese boton. Estaba pensando en deshabilitarlo pero no se que me recomiendan ustedes, si sera la mejor forma y de ser asi, pues, como?? o si conocen alguna otra forma??

Quedo a la espera de sus comentarios.

Saludos!

Quedan - xyz.rar

publicado

Cambia esta programacion de tu boton por este:

Private Sub CommandButton1_Click()

Application.ScreenUpdating = False

Sheets("Reporte").Visible = True

'Range("A1") = TextBox1.Value

'Sheets("Reporte").Range("A1") = TextBox1.Value

'-- Desprotegemos la Hoja.

Sheets("Reporte").Select 'Selecciona la Hoja1

ActiveSheet.Unprotect Password:="2804" 'Protege la hoja activa. Con contraseña.

'-- Se imprime en la hoja del reporte.

Sheets("Reporte").Range("A50000").End(xlUp)(2).Value = TextBox2.Value 'Numero Comprobante

Sheets("Reporte").Range("B50000").End(xlUp)(2).Value = TextBox1.Value 'Fecha Quedan

Sheets("Reporte").Range("C50000").End(xlUp)(2).Value = TextBox4.Value 'Codigo

Sheets("Reporte").Range("D50000").End(xlUp)(2).Value = TextBox7.Value 'Fecha Comprob

Sheets("Reporte").Range("E50000").End(xlUp)(2).Value = TextBox5.Value 'Nombre

Sheets("Reporte").Range("F50000").End(xlUp)(2).Value = TextBox6.Value 'Valor

Sheets("Reporte").Range("G50000").End(xlUp)(2).Value = Label7 'Codigo Interno Quedan

'-- Protegemos la Hoja.

'-- Limpiamos las celdas.

TextBox1.Value = " "

TextBox2.Value = " "

TextBox3.Value = " "

TextBox4.Value = " "

TextBox5.Value = " "

TextBox6.Value = " "

TextBox7.Value = " "

Sheets("Reporte").Select 'Selecciona la Hoja1

ActiveSheet.Protect Password:="2804"

Sheets("Reporte").Visible = xlSheetVeryHidden

Sheets("Quedan").Select

Application.ScreenUpdating = True

End Sub

publicado

Primero reempleza tus datos desde vba, luego cambia la contraseña yo use 2804, cambiala por la que tu quieres, pero antes de ejecutar ve a la hoja Reportes y proteje tu hoja poniendole la misma contraseña que utilizastes en la vba, y luego si ya puedes ejecutar la accion.

publicado

Excelente graciasssssssssssss!!!!

Eso era lo que andaba buscando!!!

Sheets("Reporte").Select 'Selecciona la Hoja1
ActiveSheet.Protect Password:="2804"
Sheets("Reporte").Visible = xlSheetVeryHidden
Sheets("Quedan").Select
Application.ScreenUpdating = True[/CODE]

Esta porcion fue la que me salvo la vida!!!

Edito: No se como cerrar el tema... Si alguien me explica como, con gusto lo hago y dejo puntuacion si tienen.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.