![Decabeza](http://static.forosdelweb.com/fdwtheme/images/smilies/decabeza.png)
Un amigo y yo llevamos días intentando finalizar una macro para una aplicación de turnos de nuestro trabajo. Hemos desplegado los días del año en la columna B y los nombres en la fila 6. El caso es que la siguiente macro nos permite variar el color según el indicativo de la celda inferior derecha (rango de cada casilla de turnos 2:3)
Pues bien, hemos conseguido que al indicar en esta celda inferior derecha, "BAJA", "VAC", "L", etc... copie el valor de la celda que se encuentra a la izquierda de esta, en un rango de celdas que se encuentra mucho más abajo (3000 filas más abajo) para después sumarlos o tratarlos según nos interese. Sin embargo nuestra macro no consigue leer el dato si es copiado y pegado!!! SOS!!! Nos vamos a volver locos!!! Hemos intentado de todo.... y cuando digo de todo... es de todo.
Cita:
Saludos cordiales, Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Column / 2) = Int((Target.Column / 2)) And Target.Row <= 2529 Then
Select Case Target.Value
Case Is = "BAJA", "baja"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 27
'OLI: ESTE CASE HACE REFERENCIA A LAS HORAS INDICADAS EN EL CUADRO
Case Is = "BAJAH", "bajah"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 27
'OLI: ESTE CASE HACE REFERENCIA A LAS HORAS INDICADAS EN EL CUADRO
Case Is = "HSH", "hsh"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 45
'OLI: ESTE CASE HACE REFERENCIA A LAS HORAS INDICADAS EN EL CUADRO
Case Is = "CUH", "cuh"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 37
Case Is = "VAC", "vac"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 35
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 35
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 35
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 35
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 35
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 35
Case Is = "EXC", "exc"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 16
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 16
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 16
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 16
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 16
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 16
Case Is = "NO", "no"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 15
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 15
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 15
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 15
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 15
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 15
Case Is = "LR", "lr"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 38
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 38
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 38
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 38
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 38
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 38
Case Is = "LNR", "lnr"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 46
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 46
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 46
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 46
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 46
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 46
Case Is = "ABS", "abs"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 3
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 3
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 3
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 3
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 3
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 3
Case Is = "SES", "ses"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 9
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 9
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 9
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 9
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 9
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 9
Case Is = "L", "l", " "
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 2
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 2
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 2
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 2
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 2
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 2
Case Is = "JT", "OFI", "SUP", "GES", "RRHH", "jt", "ofi", "sup", "ges", "rrhh"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 39
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 39
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 39
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 39
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 39
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 39
Case Is = "HS", "hs"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 45
Case Is = "CU", "cu"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 37
Case Else
End Select
End If
End Sub
If (Target.Column / 2) = Int((Target.Column / 2)) And Target.Row <= 2529 Then
Select Case Target.Value
Case Is = "BAJA", "baja"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 27
'OLI: ESTE CASE HACE REFERENCIA A LAS HORAS INDICADAS EN EL CUADRO
Case Is = "BAJAH", "bajah"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 27
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 27
'OLI: ESTE CASE HACE REFERENCIA A LAS HORAS INDICADAS EN EL CUADRO
Case Is = "HSH", "hsh"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 45
'OLI: ESTE CASE HACE REFERENCIA A LAS HORAS INDICADAS EN EL CUADRO
Case Is = "CUH", "cuh"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 37
Case Is = "VAC", "vac"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 35
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 35
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 35
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 35
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 35
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 35
Case Is = "EXC", "exc"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 16
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 16
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 16
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 16
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 16
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 16
Case Is = "NO", "no"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 15
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 15
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 15
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 15
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 15
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 15
Case Is = "LR", "lr"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 38
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 38
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 38
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 38
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 38
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 38
Case Is = "LNR", "lnr"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 46
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 46
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 46
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 46
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 46
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 46
Case Is = "ABS", "abs"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 3
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 3
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 3
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 3
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 3
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 3
Case Is = "SES", "ses"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 9
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 9
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 9
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 9
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 9
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 9
Case Is = "L", "l", " "
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 2
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 2
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 2
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 2
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 2
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 2
Case Is = "JT", "OFI", "SUP", "GES", "RRHH", "jt", "ofi", "sup", "ges", "rrhh"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 39
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 39
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 39
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 39
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 39
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 39
Case Is = "HS", "hs"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 45
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 45
Case Is = "CU", "cu"
Cells(LTrim(Str(Target.Row)), Target.Column).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 1, Target.Column).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)), Target.Column - 1).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 1, Target.Column - 1).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 2, Target.Column).Interior.ColorIndex = 37
Cells(LTrim(Str(Target.Row)) - 2, Target.Column - 1).Interior.ColorIndex = 37
Case Else
End Select
End If
End Sub
Ricardo