UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1RESUELTO proteger formulas con codigo el 09/01/14, 09:53 pm

rubito1


necesito proteger celdas con formulas(para que no las borren x error) pero que no afecte(no de error)al ejecutar una macro
tengo este codigo
Código:
Dim TeniaFormula As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Target.HasFormula And TeniaFormula Then
        If MsgBox("Por favor, no malogres la hojita, deja de borrar mis formulitas ¿Estás seguro que quieres borrarla?", 292, "Error") = vbNo Then Application.Undo
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    TeniaFormula = Target.HasFormula
End Sub
pero al ejecutar macros o al combinarlo por ejemplo con este otro codigo,me tira error(necesito las 2 opciones)

Código:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.MoveAfterReturn = False
If Target.Count = 1 Then
  If Not Intersect(Target, Range("M5:M1000")) Is Nothing Then
    Cells(Target.Row, "N") = Now
  End If
End If
Application.MoveAfterReturn = True
End Sub

2RESUELTO Re: proteger formulas con codigo el 09/01/14, 11:41 pm

tyno


Hola rubito1. Bien venido.
Lo que tienes que hacer es desproteger momentáneamente la Hoja mientras se ejecuta la macro en cuestión, por ejemplo:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.MoveAfterReturn = False

Sheets("Hoja1").UnProtect  "mi_contraseña"

If Target.Count = 1 Then
  If Not Intersect(Target, Range("M5:M1000")) Is Nothing Then
    Cells(Target.Row, "N") = Now
  End If
End If

Sheets("Hoja1").Protect  "mi_contraseña"

Application.MoveAfterReturn = True
End Sub

En el ejemplo supuse que la Hoja activa se llama Hoja1, desde luego tiene que ir nombre que tengas realmente en esa Hoja.
Si tienes contraseña entonces entre comillas va la contraseña, si no, sino tienes contraseña entonces eso no va, queda solamente:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.MoveAfterReturn = False

Sheets("Hoja1").UnProtect 

If Target.Count = 1 Then
  If Not Intersect(Target, Range("M5:M1000")) Is Nothing Then
    Cells(Target.Row, "N") = Now
  End If
End If

Sheets("Hoja1").Protect  

Application.MoveAfterReturn = True
End Sub

En ambos casos lo que se esta haciendo es primero desproteger la Hoja, luego corre la macro y vuelve a protegerse. Saludos

3RESUELTO gracias tyno el 10/01/14, 11:44 am

rubito1


1)gracias x tu pronta y supercompleta respuesta(x las explicaciones que me vienen barbaro)
2)te comento que tiene los siguientes errores:
 
a)ni bien abro la hoja ,y solo la 1era vez ,si me deja borrar"accidentalmente o no" una formula;repito,solo la 1era vez ,ya que luego si quiero borrar, si me sale el cartel con el texto de que esta protegida;

b)como dije en el comienzo,me tira error (se detiene)la macro al ejecutarla;tengo varias macros,que ordenan,ocultan-filtran datos,etc(y ya cambie el nombre de "hoja" x "PLANILLA")
por ejemplo,en una de las macros se detiene en esta sentencia(la 1er sentencia)
Código:
ActiveSheet.AutoFilterMode = False
pero tengo "muchas" otras macros y en todas se detiene la ejecucion

4RESUELTO Re: proteger formulas con codigo el 10/01/14, 07:12 pm

tyno


Hola rubito.
¿No te da para subir el archivo que estas trabajando? me refiero a una copia del mismo, no es necesario que tengas datos privados pero si parecidos a los que estas utilizando en la realidad. También no es necesario que subas el archivo con todas las Hojas sino solo aquellas que tienen relación con lo que estamos viendo. Luego tendrías que explicar como es que funciona tu archivo y que es lo que quieres obtener en el mismo. Una cosa que se me ocurre es que quizás se puedan reemplazar las formulas con macros, es decir obtener los resultados de las formulas pero  por medio de macros, con esto no solo vas a evitar que se borren las formulas por que ya no las vas a tener en la Hoja,  sino que también el archivo va a ser mas liviano en cuanto a calculo por el hecho de no tener formulas. Saludos

5RESUELTO Re: proteger formulas con codigo el 10/01/14, 08:31 pm

rubito1


LA IDEA es protegert las celdas con formulas contra borrados accidentales y que no afecte cuando ejecuto alguna macro que filtra u ordena
Archivos
borrado.zip
No tienes los permisos para descargar los archivos.
(157 KB)

6RESUELTO Re: proteger formulas con codigo el 17/01/14, 12:43 pm

rubito1


gracias por todo

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.