Ya te envié el libro. La macro Vacaciones se modific´completamente, dejo la de la hoja:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
Dim rgox, busco
Dim dato As String
Dim Turno As String 'ATENCIÓN CARLOS: confirmar si son enteros
'ATENCIÓN: tener presente que el nombre de las subrutinas sean =
'a la cadena: 'Turno' & nro de hasta 2 dígitos
Dim macri As String
'se ejecuta al cambio manual en col E, a partir de fila 5.
If Target.Column <> 6 Or Target.Row < 5 Then Exit Sub
'no se ejecuta si se modifica más de 1 celda, caso de limpieza
If Target.Count > 1 Then Exit Sub
'no se ejecuta si se limpia la celda
If Target.Value = "" Then Exit Sub
'ahora está en condiciones de ejecutar la macro para esa fila
Turno = Target.Value 'el turno lo da la celda activa
'fila y última col se guardan en variables públicas para ser utilizadas en las subrutinas
j = Target.Row
colx = [A4].End(xlToRight).Column
'se busca la col de la fecha 'inicio ciclo' en fila 2. utilizo la función COINCIDIR
Set rgox = Rows("3:3")
colIni = Application.WorksheetFunction.Match(Range("E" & j), rgox, 0)
'se limpia el rango de valores y formatos anteriores
Range(Cells(j, 7), Cells(j, colx)).ClearContents
Range(Cells(j, 7), Cells(j, colx)).ClearFormats
'según el turno será la subrutina
macri = "Turno" & Format(Turno, "00") 'atención que por ahora son 2 dígitos.
On Error GoTo sinmacro
Application.Run macri
On Error GoTo 0
'agregado 26/01/16
'la fila del target sigue siendo 'j'
usua = Range("A" & j)
Call vacaciones
MsgBox "El proceso finalizó.", , "INFORMACIÓN"
Exit Sub
sinmacro:
MsgBox "No se encuentra la macro llamada: " & macri
End Sub
Sdos!