Ayuda! Para que cada 24hrs. se bloque un rango de celdas...

gusmario2011

New Member
Joined
Aug 4, 2011
Messages
27
Amigos es mi primer post en este foro...

Miren lo que quiero hacer es una hoja de excel que haga lo siguiente:

La hoja tiene los dias de la semana, Lunes, martes, miercoles, jueves,etc... hasta el dia domingo.

lunes en la celda "A1", martes en la celda "B1", etc.. hasta completar los 7 dias..

La idea es hacer que despues de 24hrs. se bloque el rango ("A2:A50") que corresponden al dia lunes, y despues de 24hrs. mas se bloque el rango ("B2:B50") que corresponde al dia martes y asi seguir hasta completar los 7 dias, osea 7 columnas.

Esto es para que el reporte de produccion que estoy haciendo no lo puedan modificar lo trabajadores despues de las 24hrs. y asi poder evaluar los 7 dias de la semana, he visto algunas macros pero no he podido hacerlo que me funciones y que sea automatico.

agrdeceria su apoyo en este proyecto.:p
 

Excel Facts

Create a chart in one keystroke
Select the data and press Alt+F1 to insert a default chart. You can change the default chart to any chart type
Amigos es mi primer post en este foro...

Miren lo que quiero hacer es una hoja de excel que haga lo siguiente:

La hoja tiene los dias de la semana, Lunes, martes, miercoles, jueves,etc... hasta el dia domingo.

lunes en la celda "A1", martes en la celda "B1", etc.. hasta completar los 7 dias..

La idea es hacer que despues de 24hrs. se bloque el rango ("A2:A50") que corresponden al dia lunes, y despues de 24hrs. mas se bloque el rango ("B2:B50") que corresponde al dia martes y asi seguir hasta completar los 7 dias, osea 7 columnas.

Esto es para que el reporte de produccion que estoy haciendo no lo puedan modificar lo trabajadores despues de las 24hrs. y asi poder evaluar los 7 dias de la semana, he visto algunas macros pero no he podido hacerlo que me funciones y que sea automatico.

agrdeceria su apoyo en este proyecto.:p

Bien en vista de que no me comentan nada, aqui un adelanto de lo que tengo realizado...
 
Upvote 0
Sub bloquear_Cada_24_Horas()
If Date > DateSerial(2011, 5, 8) Then
Range("A2:A41").Select
ActiveWindow.SmallScroll Down:=-21
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("A1").Select

If Date > DateSerial(2011, 6, 8) Then
ActiveSheet.Unprotect
Range("b2:b41").Select
ActiveWindow.SmallScroll Down:=-21
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("b1").Select

If Date > DateSerial(2011, 7, 8) Then
ActiveSheet.Unprotect
Range("c2:c41").Select
ActiveWindow.SmallScroll Down:=-21
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("c1").Select

If Date > DateSerial(2011, 8, 8) Then
ActiveSheet.Unprotect
Range("d2:d41").Select
ActiveWindow.SmallScroll Down:=-21
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("d1").Select

If Date > DateSerial(2011, 9, 8) Then
ActiveSheet.Unprotect
Range("e2:e41").Select
ActiveWindow.SmallScroll Down:=-21
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("e1").Select

If Date > DateSerial(2011, 10, 8) Then
ActiveSheet.Unprotect
Range("f2:f41").Select
ActiveWindow.SmallScroll Down:=-21
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("f1").Select

If Date > DateSerial(2011, 11, 8) Then
ActiveSheet.Unprotect
Range("g2:g41").Select
ActiveWindow.SmallScroll Down:=-21
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("g1").Select
End If
End If
End If
End If
End If
End If
End If
End Sub

EL CODIGO FUNCIONA PARA LO QUE LO QUIERO, PERO ABRA ALGUNA FORMA DE SIMPLIFICARLO Y NO TENER QUE ESTAR AGREGANDO EL CODIGO DE TODOS LOS DIAS DEL MES?...

ALGUIEN ME PODRIA HECHAR UNA MANO POR FAVOR...
 
Upvote 0
Hola gusmario,

Podrías probar con el código de abajo, el cual va orientado a que se ejecute automáticamente cada vez que abran
el archivo, por lo tanto en lugar de colocarlo en un módulo normal, debés ponerlo en el módulo "ThisWorkbook".
Code:
Private Sub Workbook_Open()
[COLOR=Green]'Bloquear rangos de dias anteriores[/COLOR]
Dim Dia As Integer, Semana(), i As Integer

Dia = Weekday(Date, vbMonday) [COLOR=Green]' Buscando qué día de la semana es actualmente[/COLOR]
Semana = Array("A", "B", "C", "D", "E", "F", "G") [COLOR=Green]' Matriz de columnas por cada dia de Lun-Dom[/COLOR]

If Dia > 1 Then [COLOR=Green]'Hacer lo siguiente si dia es mayor que lunes[/COLOR]
With Sheets("Hoja1") [COLOR=Green]' Aquí colocar el nombre de la hoja necesaria[/COLOR]
    .Unprotect "TuClave" [COLOR=Green]' Cambiar a tu clave escogida para bloquear[/COLOR]
    .Cells.Locked = False
    For i = 0 To Dia - 2 [COLOR=Green]' Loop para bloquear rangos de dias anteriores al actual[/COLOR]
        .Range(Semana(i) & 2 & ":" & Semana(i) & 50).Locked = True
    Next
    .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    .EnableSelection = xlUnlockedCells
    .Protect "TuClave"
End With
End If
End Sub
Favor probar, espero ayude.

Saludos cordiales
 
Last edited:
Upvote 0
Gracias esta de lujo, ya lo adapte a mi hoja de excel y funciona genial.

Por cierto, una pregunta!...

Tengo unos macros que he podido conseguir en mi trabajo de personas que trabajaron en la compañia y dejaron estas macros y estan excelentes tambien y que no he visto que posten aqui y que creo les serian utiles a muchos miembros del foro.

Volviendo a lo de la pregunta, puedo postearlos para compartirlos con todos?, no habra problemas?...

Gracias por tu super apoyo, esta muy buena la macro...;)
 
Upvote 0
Hey gusmario, por nada, que bueno saber que funcionó como necesitabas.

Sobre lo de compartir información, no creo que haya problema, pero tal vez un moderador pudiera responder
si hay alguna sección especial destinada a esto o aquí mismo en el foro de preguntas.

Saludos cordiales
 
Upvote 0

Forum statistics

Threads
1,215,473
Messages
6,125,017
Members
449,203
Latest member
tungnmqn90

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top