Bloqueo hoja de calculo los macros no funcionan

Tengo un macro para ordenar tabla en una hoja de calculo. La quiero enviar aúnas personas por correo y la quiero proteger para que no modifiquen nada, pero al proteger el macro no anda. ¿Hay alguna solución para eso?
Otra pregunta, ¿hay alguna forma para que no me salga el cartel de deshabilitar y habilitar macro cuando hablo la planilla?

1 respuesta

Respuesta
1
Cuando tu macro empiece debes desprotegerla
Sheets("nombre de la hoja"). Unprotect ("código de protección")
Antes que la macro termine la vuelves a proteger.
Sheets("nombre de la hoja"). Protect ("código de protección")
De esta manera mientras realiza el proceso se desbloqueara y se volverá a desbloquear, sin que el usuario se de cuenta.
Ejemplo:
Sub anular_1Imagen_Haga_clic_en()
    Sheets("anular").Unprotect ("7824")
           msgbox("hola")
    Sheets("anular").Unprotect ("7824")
end sub
Observación: Cuidado con el nombre de la hoja, debe ser el mismo.
Si la respuesta te sirvió, favor de cerrala y valorizar, si no fue así, estaré atento a tus comentarios.
Disculpa me falto tu otra consulta:
Forma para que no me salga el cartel de deshabilitar y habilitar macro
Ve a: Opciones de Excel -Centro de confianza - Configuración de centro de confianza - Configuración de macros - hay tienes varias opciones las cuales probar y acomodar a tu antojo.
Disculpa pero no entendí bien.
Yo pongo ese macro y lo que me sale es un cartel que dice hola y me la deshabilita.
Pero después no me lo protege . capas no se bien donde va ubicado ese código. No te enojes es que soy nuevo en esto y a la ves medio torpe
Capas no me explique bien.. tengo n macro que ordena, cuando lo protejo lo voy a ordenar y me sale un cartel que dice SE Ha PRODUCIDO EL ERROR "1004" EN TIEMPO DE EJECUCIÓN:
La celda que intenta ejecutar esta protegida y por lo tanto son solo de lectura.
Este es el macro que uso
Sub Ordenando()
'ordena la hoja Orden por la col A en forma ascendente teniendo la primera fila como encabezado
Sheets("Tabla").Range("b9:h20").Select
Selection.Sort Key1:=Range("h9"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
Tu macro te quedaría algo así.
Recuerda en el paréntesis poner tu clave con la cual tienes bloqueada la hoja.
Sub Ordenando()
Sheets("Tabla").Unprotect ("pone aqui tu clave")
'ordena la hoja Orden por la col A en forma ascendente teniendo la primera fila como encabezado
Sheets("Tabla").Range("b9:h20").Select
Selection.Sort Key1:=Range("h9"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Sheets("Tabla").Protect ("pone aqui tu clave")
End Sub
Si la respuesta te sirvió, favor de cerrala y valorizar, si no fue así, estaré atento a tus comentarios.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas