Jump to content

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Crear macros Excel

  • Posts

    • o... a reserva de que tu modelo "real" tenga elementos que no "se ven" en tu consulta ? prueba con la muestra del adjunto (aunque hay mas alternativas), funciona desde xl-2007 cuentaUnicos vCondiciones (ayudaExcel).xlsx
    • en tanto aclaras esta parte: mira por aqui: - Función CONTAR.SI.CONJUNTO
    • Hola a todos, es mi primer post y realmente necesito la ayuda, mi nombre es German y tengo el siguiente problema a resolver, tengo una base de datos que se actualiza constantemente con la que esta abajo, necesito obtener los siguientes resultados: ¿cuantos "envios a domicilio" de "general" se hicieron obteniendo como resultados valores unicos (contar los datos unicos sobre esos criterios)? y la misma resupuesta sobre "clientes crm". Desde ya muchas gracias, no me da la capacidad para resolver este problema! Gracias de nuevo! Evelin Beltran 159 Envio a Domicilio General Camila Nansen 248 Envio a Domicilio General Alejandra Uspallata 305 Envio a Domicilio General Ana Marìa "La Poro" Damas Mendocinas 647 Envio a Domicilio General Georgina Gallini 1268 Envio a Domicilio General Susana Mazza 1019 Envio a Domicilio General Valu Galdos 638 Envio a Domicilio General Irene Jose Hernandez 1337 Envio a Domicilio clientes cmr Liendo Olivé 1546 Envio a Domicilio General Cristina J. C. Paz 646 Envio a Domicilio General Sebastian Esteco 745 Envio a Domicilio General MARIA DE NAPOLI. Envio a Domicilio clientes cmr Cristina J. C. Paz 646 Envio a Domicilio General Julia J. C. Paz 656 Envio a Domicilio clientes cmr Isabel Triunvirato 521 Envio a Domicilio General Ana Marìa "La Poro" Damas Mendocinas 647 Envio a Domicilio General Julia J. C. Paz 656 Envio a Domicilio clientes cmr      
    • Así es,  estoy desarrollando una app y quisiera limitar ese acceso, para que, ésta sea más especifica en su actividad. Saludos   
    • Saludos @jesuspg Esto es porque estás usando la función MES dentro de la función TEXTO.  si la quitas, tendrás el nombre del mes correcto: =SI(ESBLANCO([@[FECHA DE LA COMUNICACION]]);"";MAYUSC(TEXTO([@[FECHA DE LA COMUNICACION]];"MMMM"))) ¡Bendiciones!
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy