Desproteger hoja al ejecutar una macro

24/06/2006 - 01:46 por gejimo | Informe spam
Hola Señores,
Les agradecería me pudieran ayudar con el siguiente problema: "Necesito
controlar la hora y fecha en que los usuarios de un archivo introducen
información en la columna "D7" del mismo, para ello, introduje la
siguiente fórmula en la celda "C7"
si(D7<>"", ahora(),"")
Como no quería que se actualizara esta fórmula, mi solución fue que
mediante una macro se copiara como valor los resultados de esta fórmula y
como no quería que modificaran dicho valor, protegí la hoja.
Todo funcionó de maravilla hasta antes de proteger la hoja, una vez que lo
hice, me mandó siempre el mensaje de que la hoja estaba protegida y, por
ende, le era imposible hacer esa copia especial de la celda.
¿Qué puedo hacer?
Les copio la macro:
Sub Macro1()
' Proceso = InputBox("Proceso?")
Periodo = InputBox("Periodo?")
Ejecutivo = InputBox("Ejecutivo?")
Range("C7").Select
ActiveCell.FormulaR1C1 = Proceso
Range("D7").Select
ActiveCell.FormulaR1C1 = Periodo
Range("E7").Select
ActiveCell.FormulaR1C1 = Ejecutivo
Range("c2").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlUp).Select
ActiveCell.Offset(0, -1).Range("A1").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
End Sub

Preguntas similare

Leer las respuestas

#1 isaac
24/06/2006 - 04:07 | Informe spam
Hola Gerardo
utiliza los siguiente:

Application.ScreenUpdating = False 'AL INICIO DE LA EJECUCION DE UNA MACRO
TE AYUDA A EVITAR EL MOLESTO PARPADEO
' DE PANTALLA
MIENTAS SE EJECUTA LA MACRO
ActiveSheet.Unprotect Password = Y6dhet5 ' ESTA SETENCIA QUITA EL PASSWORD
ASIGNADO POR LA MACRO CAMBIA "Y6DHET5" POR '
'TU
PASSWORD

'AQUI EN MEDIO PON TU CODIGO COMPLETO

Hoja1.Protect Password = Y6dhet5, DrawingObjects:=True, Contents:=True,
Scenarios:=True
Application.ScreenUpdating = True

' ESTA SETENCIA EN LA HOJA1 AL TERMINAR TU MACRO LA VUELVE A PROTEGER CON EL
PASS "Y6DHET5", TEN ENCUENTA QUE SI PROTEGES LA HOJA CON PASSWORD DISPARADO
DESDE LA MACR, SOLO LO VAS APODER QUITAR CON LA MACRO QUE TIENE LA SETENCIA
PARA DESPROTEJER, ES DECIR NO FUNCIONA -HERRAMIENTAS- DESPROTEGER HOJAS DEL
MENU NORMAL

Saludos Comenta

Isaac

"Gerardo "Jiménez"" escribió en el mensaje
news:
Hola Señores,
Les agradecería me pudieran ayudar con el siguiente problema: "Necesito
controlar la hora y fecha en que los usuarios de un archivo introducen
información en la columna "D7" del mismo, para ello, introduje la
siguiente fórmula en la celda "C7"
si(D7<>"", ahora(),"")
Como no quería que se actualizara esta fórmula, mi solución fue que
mediante una macro se copiara como valor los resultados de esta fórmula y
como no quería que modificaran dicho valor, protegí la hoja.
Todo funcionó de maravilla hasta antes de proteger la hoja, una vez que lo
hice, me mandó siempre el mensaje de que la hoja estaba protegida y, por
ende, le era imposible hacer esa copia especial de la celda.
¿Qué puedo hacer?
Les copio la macro:
Sub Macro1()
' Proceso = InputBox("Proceso?")
Periodo = InputBox("Periodo?")
Ejecutivo = InputBox("Ejecutivo?")
Range("C7").Select
ActiveCell.FormulaR1C1 = Proceso
Range("D7").Select
ActiveCell.FormulaR1C1 = Periodo
Range("E7").Select
ActiveCell.FormulaR1C1 = Ejecutivo
Range("c2").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlUp).Select
ActiveCell.Offset(0, -1).Range("A1").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
End Sub


Respuesta Responder a este mensaje
#2 Héctor Miguel
25/06/2006 - 04:43 | Informe spam
hola, Gerardo !

... Necesito controlar la hora y fecha en que los usuarios... introducen informacion en la columna "D7"
... introduje la siguiente formula en la celda "C7" si(D7<>"", ahora(),"")
... no queria que se actualizara esta formula... macro... copiara como valor los resultados
... funciono de maravilla hasta antes de proteger la hoja [...]



1) para que la proteccion de 'la hoja' NO afecte las acciones de tus macros [ya lo has comentado antes]...
== en el modulo de codigo del libro [ThisWorkbook] =Private Sub Workbook_Open()
Worksheets("nombre de la hoja").Protect _
PassWord:="pon aqui tu clave", _
UserInterfaceOnly:=True
End Sub

2) puedes abreviar la macro que estas usando con algo +/- como lo siguiente:
Sub Registra_datos_y_date()
Range("c7") = InputBox("Proceso?")
Range("d7") = InputBox("Periodo?")
Range("e7") = InputBox("Ejecutivo?")
Range("b7") = Now
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ el codigo expuesto __
Sub Macro1()
' Proceso = InputBox("Proceso?")
Periodo = InputBox("Periodo?")
Ejecutivo = InputBox("Ejecutivo?")
Range("C7").Select
ActiveCell.FormulaR1C1 = Proceso
Range("D7").Select
ActiveCell.FormulaR1C1 = Periodo
Range("E7").Select
ActiveCell.FormulaR1C1 = Ejecutivo
Range("c2").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlUp).Select
ActiveCell.Offset(0, -1).Range("A1").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida