Saltar al contenido

Desbloquear rango desde la fecha siguiente a hoy hasta final del año


Recommended Posts

hola a todos no soy experta pero estoy haciendo una macro donde en un listado de funcionarios x, puedan escoger una opción de ingreso del día siguiente, pero sin afectar el día de hoy que ya fue programado(Esta bloqueado), el que tengo a continuación solo permite desbloquear el día de hoy.

¿Como debo escribir la instrucción para que el rango desbloqueado sea a partir del día siguiente hasta final del año?. lo que tengo actualmente es:

El archivo original es una matriz donde en las filas x estan los nombres de los funcionarios y en las columnas i las fechas. ellos deben escoger entre 6 opciones de una lista. a partir del día siguiente a hoy.

Sub PROGRAMACION_DIARIA()

Dim contraseña As String

Dim Programación As Object

Dim myrange As Range

Dim celdi As Range, i As Long, x As Long

For i = 1 To Sheets.Count

Sheets(i).Protect

Next i

contraseña = LCase(InputBox("teclee contraseña", "contraseña"))

Select Case contraseña

Case "001"

For Each Sheet In ActiveWorkbook.Sheets

Sheet.Visible = True

Sheet.Unprotect

Next

MsgBox "tiene acceso de lectura/ escritura en todas las hojas."

Case "002"

With Sheets("Programación").Unprotect

x = ActiveWorkbook.Worksheets("Programación").Range("A" & Rows.Count).End(xlUp).Row

Set myrange = ActiveWorkbook.Worksheets("Programación").Rows("14:14")

Set celdi = myrange.Find(Date)

If celdi Is Nothing Then MsgBox "No Hay fecha se bloquea todo", , "": GoTo 0

i = celdi.Column 'la idea es que se bloquee el rango hasta hoy se debe programar todo el rango desde el siguiente dia de hoy.

ActiveWorkbook.Worksheets("Programación").Range(Cells(15, i), Cells(x, i)).Locked = False

ActiveWorkbook.Worksheets("Programación").Range(Cells(15, i), Cells(x, i)).FormulaHidden = False

0:

ActiveWorkbook.Worksheets("Programación").Protect

Exit Sub

End With

MsgBox " tiene acceso de solo lectura y escritura en su rango de celdas"

Case "Limitada"

ActiveWorkbook.Worksheets("Programación").Visible = True

MsgBox " tiene acceso de solo lectura en una hoja"

Case Else

MsgBox " contraseña incorrecta. Vuelva a intentarlo"

End Select

End Sub

Enlace a comentario
Compartir con otras webs

Ok bueno si te entendí bien lo que quieres es que no se puedan modificar las celdas que están del día actual hacia atras solo las que están a futuro para que no puedan modificar las fechas es asi ???

Bueno si así es prueba esta modificación la macro se ejecuta automáticamente cuando abres el archivo y veras que si lo abres "hoy" 15/07/13 no podrás modificar esa celda ni anteriores pero si del 16 para adelante y así consecutivamente dependiendo del día que lo abras

Bueno hay me aviasas cm te fue, cm consejo deberías poner una contraseña a la hora de proteger el libro xq así cm esta es muy fácil des protegerlo y modificarlo.

Salu2

Programación Horarios Flexibles foro - copia.zip

Enlace a comentario
Compartir con otras webs

Hola. efectivamente la macro bloquea automáticamente las fechas, pero no veo en donde diste la instrucción a la macro donde bloquea el rango. porfis podrias escribirme puntualmente cual es la instrucción?

Igualmente, este archivo lo que busca es que cada usuario de su contraseña para ingresar al rango que puede modificar y debe desbloquear, que para esta macro es el case "002".

En cuanto a tu consejo de bloquear el libro , si tks. voy a incluir contraseña .tks

Enlace a comentario
Compartir con otras webs

Hola te envió otra versión en esta hice un "Usuario y contraseña" la persona lo ingresa y solo puede modificar el rango de fechas donde este su nombre y que sea del día actual a futuro. Los usuarios son la primera letra del nombre y el apellido ejem "aortiz" y todas las contraseñas son "123". Hay una hoja oculta llamada "Usuarios" donde puedes ver y modificar las contraseñas.

Bueno espero te sirva, hay me comentas. El codigo VBA estan en el userform1 y en el modulo ThisWorkbook

Programación Horarios Flexibles foro - copia (version 1).zip

Enlace a comentario
Compartir con otras webs

Hola Riddle, esa macro es genial.

Funciona super bien, tengo dos inquietudes, que como veo tu eres experto.

1. como hago para que la hoja que se oculta con las contraseña, finalmente solo la pueda ver el administrador del archivo?.

2. y como hago para que el usuario no desproteja el archivo, si tiene conocimientos de excel por el menu revisar\Desproteger hoja, si finalmente al usar esta opción toda la protección queda levantada?

Voy a analizar la macro que con el Userform, en realidad no he usado esta aplicación. tema nuevo para mi

Gracias por tu ayuda.

Enlace a comentario
Compartir con otras webs

Hola pues esta vez me he esforzado jeje así que me debes un café por lo menos. Esta explicación va a ser larga

Bueno hay un botón nuevo que dice Opciones de administrador, este abre un formulario donde introducirás Usuario y contraseña de administrador, este te permite: Desbloquear toda la hoja, cambiar las contraseñas a los Usuarios incluida la tuya, agregar nuevos Usuarios, mostrar u ocultar la hoja de Usuarios, cambiar la contraseña con la que se bloquea la hoja y ya no me acuerdo que mas.

Ahora la hoja "Usuarios" esta oculta con la propiedad xlVeryHidden, o muy oculta, con lo cual solo la puedes desbloquear con una macro. Ahora el problema esta si quien la usa sabe de macros, por eso debes ponerle una contraseña al proyecto lo cual haces así: Bloquear acceso a VBA en Excel | Excellentias.com - Comunidad de Excel y Visualización de Información

Hay una celda en la hoja usuario donde se almacena la contraseña para bloquear la hoja "Programación"

La contraseña para administrador es esta

Usuario: admin

Contraseña: 123

Esta la puedes cambiar desde el formulario que cree poniendo en el cuadro para buscar admin.

Bueno creo que eso es todo, ahí me cuentas cm te fue.

Salu2

Programación Horarios Flexibles foro - copia (version 1).zip

Enlace a comentario
Compartir con otras webs

Hola, pues que bueno que te sirve, la función F8 debería funcionar bien debes presionarla dentro del código primero te mostrara los pasos de UserForm_Activate(), después debes introducir la contraseña y seguir presionando F8.

Salu2

Enlace a comentario
Compartir con otras webs

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.