Saltar al contenido

Macro no se ejecuta en cambio de celda en una columna


Recommended Posts

publicado

[solucionado]Macro no se ejecuta en cambio de celda en una columna

Buena tarde;

Nuevamente me tomo el atrevimiento de pedir su ayuda ya que estoy atorado y no puedo dar con una solución, mi problema es el siguiente,:

Tengo 8 modulos con 2 rutinas Sub cada uno y quiero que cada una de ellas se ejecute cuando se hagan cambios en las celdas de 8 diferentes columnas, para hacer esto, he puesto este código en la hoja en la que quiero que se ejecute

Private Sub Worksheet_Change(ByVal Target As Range)


If Not Intersect(Target, Target.Worksheet.Range("L:L")) Is Nothing Then
Call Val_Fecha_3_meses_C1
Call Evitaescritura_3_meses_C1

ElseIf Not Intersect(Target, Target.Worksheet.Range("N:N")) Is Nothing Then
Call Val_Fecha_6_meses_C1
Call Evitaescritura_6_meses_C1
ElseIf Not Intersect(Target, Target.Worksheet.Range("P:P")) Is Nothing Then
Call Val_Fecha_9_meses_C1
Call Evitaescritura_9_meses_C1

ElseIf Not Intersect(Target, Target.Worksheet.Range("R:R")) Is Nothing Then
Call Val_Fecha_12_meses_C1
Call Evitaescritura_12_meses_C1

ElseIf Not Intersect(Target, Target.Worksheet.Range("T:T")) Is Nothing Then
Call Val_Fecha_18_meses_C1
Call Evitaescritura_18_meses_C1
ElseIf Not Intersect(Target, Target.Worksheet.Range("V:V")) Is Nothing Then
Call Val_Fecha_24_meses_C1
Call Evitaescritura_24_meses_C1

ElseIf Not Intersect(Target, Target.Worksheet.Range("X:X")) Is Nothing Then
Call Val_Fecha_30_meses_C1
Call Evitaescritura_30_meses_C1

ElseIf Not Intersect(Target, Target.Worksheet.Range("Z:Z")) Is Nothing Then
Call Val_Fecha_36_meses_C1
Call Evitaescritura_36_meses_C1

End If
End Sub[/CODE]

mi problema es que esta sección no se ejecuta completa

[CODE]ElseIf Not Intersect(Target, Target.Worksheet.Range("X:X")) Is Nothing Then
Call Val_Fecha_30_meses_C1
Call Evitaescritura_30_meses_C1

ElseIf Not Intersect(Target, Target.Worksheet.Range("Z:Z")) Is Nothing Then
Call Val_Fecha_36_meses_C1
Call Evitaescritura_36_meses_C1[/CODE]

Haga lo que haga en las columnas X y Z, no me arroja mensajes, no borra el contenido cuando debe hacerlo, debo resaltar que en todas las demás columnas todo funciona perfectamente, no sé si haya un límite en cuanto a la función Not intersect o si la estoy empleando mal, ya que he probado el código de los dos módulos correspondientes solos en un libro nuevo y funcionan sin problema.

Anexo el archivo para una mejor referencia

De antemano agradeceré cualquier idea o ayuda que puedan brindarme.

Saludos

Calendario Proyecto 1.zip

publicado

Buenas,

Yo lo he probado y parece funcionar.

¿Los datos de esas columnas los cambias manualmente? Porque podría ser que no los reconociera en el evento Change si se modifican de manera indirecta.

Por ofrecer una explicación.

Un saludo,

Tese

publicado

Hola tese1969, antes que nada muchas gracias por tomarte el tiempo para ayudarme, efectivamente, los datos de las columnas X y Z los cambio manualmente por medio de la lista desplegable que da solo las opciones SI y NA, pero por alguna razón todo funciona correctamente para las primeras 6 columnas, en estas 2 que menciono cuando la fecha de las celdas W e Y son mayores que la del sistema el macro no hace su función, que es mostrar un mensaje que dice que las columnas X y Z no se pueden llenar hasta que se llegue a las fechas ya indicadas y limpia el contenido, aunque por lo que me mencionas a tí te funciona correctamente, trataré pasando todos los módulos en un libro nuevo por si acaso el original está dañado.

Cualquier otra idea o sugerencia la agradezco de antemano

Saludos

publicado

Prueba a cambiar los 2 últimos "Elseif" convirtiéndolos en "If".....así....a ver si tiene que ver con algún límite de Elseif anidados..


If Not Intersect(Target, Target.Worksheet.Range("X:X")) Is Nothing Then
Call Val_Fecha_30_meses_C1
Call Evitaescritura_30_meses_C1
End If

If Not Intersect(Target, Target.Worksheet.Range("Z:Z")) Is Nothing Then
Call Val_Fecha_36_meses_C1
Call Evitaescritura_36_meses_C1
End If
[/CODE]

Un saludo,

Tese

publicado

Hola de nuevo tese1969, gracias por la sugerencia; he intentado lo que me recomiendas pero no ha habido ningún cambio, se me ocurrió modificar la manera de referenciar las columnas en las que se ejecutan las macros, pero no he terminado, probaré esa alternativa y mañana temprano comento el resultado o si sale alguna otra porpuesta.

Buena noche

Saludos

  • 2 weeks later...

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.