Ayuda para reducir tamaño procedimiento excel

Buenas tardes,

Estoy intentando mediante el procedimiento adjunto:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target.Address
Case "$B$4"
Range("A4").Interior.ColorIndex = 35
Case "$C$4"
If Range("AI4").Value <> "1" Then
Range("A4").Interior.ColorIndex = 2
Else
MsgBox "Atención, estas intentando modificar el estado de una celda con estado ya definido"
End If
Case "$D$4"
Range("AI4").Value = "1"
Range("A4").Interior.ColorIndex = 35

Hacer lo siguiente:

Si pulso sobre la celda B4, la celda A4 se pone en verde, si pulso sobre la C4 la A4 se pone en blanco y si pulso sobre la D4, la A4 se pone en verde y la bloqueo para evitar que pulsando C4 se pueda poner en blanco.

El tema esta en que esta proceso quiero hacerlo para las celdas de la 4 a la 108(A,B ,C y D) y para 7 grupos de columnas distintas. Es decir de la 4 a la 108 para:

- A-B-C-D

-E-F-G-H

-I-J-K-L

-M-N-O-P

-Q-R-S-T

-U-V-W-X

-Y-Z-AA-AB

El problema viene que con el código que adjunto supero la longitud máxima permitida y si intento hacer sub procedimientos tal como así:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

*una parte

End sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

*la otra parte

End sub

Me da fallo por emplear dos veces el mismo procedimiento

Y si lo hago tal que así:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

*una parte

Call procedimiento 2

End sub

Sub procedimiento_2()

*otra parte

End sub

Me da fallo porque falta objeto

¿Podéis ayudarme?

Gracias

Añade tu respuesta

Haz clic para o