¿Cuál es la razón por la cual mi macro no corre?

He seguido mucho de tus respuestas claras y concisas de de Excel y he tratado de aplicar varios códigos que has dejado de Visual Basic a mi Worksheet, unicamente tengo el problema que no corre ninguna macro, usualmente tengo la pregunta de como bloquear celdas al momento de escribir en una, por ejemplo si escribo en la celda A1 se bloquee las celdas A2 y A4, y de igual forma si elijo la A2.

De ejemplo seguí la pregunta Expertos se puede bloquear una celda luego de escribir en ella tu siguiente código:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.DAM
If Not Intersect(Target, Range("E5")) Is Nothing Then
    For Each c In Target
        ActiveSheet.Unprotect "abc"
        c.Locked = True
        ActiveSheet.Protect "abc"
    Next
End If
End Sub

El problema es que no me corre la macro, ¿crees qué tenga deshabilitada una opción de seguridad o sea otra cosa?

1 Respuesta

Respuesta
1

¿No se ejecuta la macro cuando escribes algo en la celda "E5"?

Entonces tienes que habilitar las macros, cuando abras tu archivo de excel te aparece una ventana para habilitar las macros, presiona Aceptar.

Si todavía no se ejecuta la macro, cambia la configuración de excel, entra a Opciones de excel, Centro de confianza, Configuración del centro de confianza, configuración de macros; selecciona la opción Habilitar todas las macros.

Hola Buenas Tardes

Muchas gracias por tu apoyo! Pero no, aun no puedo habilitarlo copiando el código a mi worksheet, tengo mis macros habilitadas en las opciones de seguridad y siguiendo tus pasos, además no me aparece una ventana para habilitar las macros, lo que si es que al momento de abrir cualquier documento en blanco de excel este abre otro que es PERSONAL se que ahí se guardan mis macros personales, pero no se si este sea factor por el cual no pueda correr la macro que pego al Visual Basic.

Saludos!

Pon esto en un módulo para ver si se ejecutan las macros

Sub Macro1()
MsgBox "Hola"
End Sub

Presiona F5 para ejecutar la macro, me dices el resultado

Buenas tardes.

Únicamente me mando a mi hoja de Excel con un mensaje que dice Hola. Trato de realizar lo mismo copiando el código anterior y presionando la tecla F5, al momento de realizarlo en Visual Basic sale una ventana para crear una macro nueva, la nombro y presiono Ejecutar, de ahí en adelante paso a escribir en la tecla E5 y presiono Enter, para verificar si se bloqueo la celda la vuelvo a seleccionar pero no esta bloqueada, me permite volver a escribir en ella.

Saludos!

Entonces si están habilitadas las macros.

Esta macro

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.DAM
If Not Intersect(Target, Range("E5")) Is Nothing Then
    For Each c In Target
        ActiveSheet.Unprotect "abc"
        c.Locked = True
        ActiveSheet.Protect "abc"
    Next
End If
End Sub

NO va en un módulo. La macro la tienes que poner en los eventos de la hoja.

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro

Saludos. Dante Amor

Recuerda valorar la respuesta.

¡Muchas gracias Dante!

Me has apoyado bastante, ya pude correr mi macro especificando los códigos en la hoja 1 y no en el worksheet.

Saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas