Macro que cambie fuente de letra en fila

Quisiera saber si me podrían apoyar; tengo una macro:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 17 Then
On Error GoTo fin
Select Case Target.Value
Case "EN CLIENTE CARGANDO"
Range("A" & LTrim(Str(Target.Row)) & ":Q" & LTrim(Str(Target.Row))).Interior.ColorIndex = 41
Case "CARGADO EN RUTA A LA TERMINAL"
Range("A" & LTrim(Str(Target.Row)) & ":Q" & LTrim(Str(Target.Row))).Interior.ColorIndex = 3
Case "OK"
Range("A" & LTrim(Str(Target.Row)) & ":Q" & LTrim(Str(Target.Row))).Interior.ColorIndex = 0
Case "EN RUTA AL CLIENTE VACIO"
Range("A" & LTrim(Str(Target.Row)) & ":Q" & LTrim(Str(Target.Row))).Interior.ColorIndex = 44
Case "EN ESPERA DE HORARIO"
Range("A" & LTrim(Str(Target.Row)) & ":Q" & LTrim(Str(Target.Row))).Interior.ColorIndex = 50
End Select
End if

fin:
End Sub
La cual como se puede apreciar al escribir cierto texto cambia el color de la fila con el rango de celdas seleccionado; mi duda en si, es como podría modificar también:
1.- El tipo de letra (que en mi caso quisiera que fuera ARIAL)
2.- El tamaño de la letra
3.- Alinear en el medio de la celda en cada una de las mismas en el rango seleccionado
4.- Centrar
5.- Ajustar Texto
Ya lo intente con el Grabador de Macros, y la macro que se me graba hace lo que pido, pero no logro adaptarla a la Macro que ya tengo...

1 respuesta

Respuesta
1
Cuando a un rango que ya tienes seleccionado necesitas cambiarle más de una propiedad tienes que hacerlo con With Selection y a continuación todos los cambios.
P.ej. para el primer case:
    Case "EN CLIENTE CARGANDO"
        Range("A" & LTrim(Str(Target.Row)) & ":Q" & LTrim(Str(Target.Row)))
.Select
        With Selection
            .Interior.ColorIndex = 41
            .Font.Name = Arial
            .Font.Size = 10
            .HorizontalAlignment = xlCenter
        End With
Disculpa...
Muchas gracias, es perfecto lo que quería, solo una pequeña duda, al ingresar el Texto que "dispara" la macro, y ya después de que realiza los cambios, se queda seleccionado el rango que se esta utilizando, ¿hay alguna forma para que esto no pase? Y al darle Enter se pase a la siguiente celda (¿de abajo) sin quedar nada más seleccionado?.
De antemano GRACIAS por tu tiempo.
Saludos!
Prueba a incluir la nueva parte en negrita:
 Case "EN CLIENTE CARGANDO"
     Range("A" & LTrim(Str(Target.Row)) & ":Q" & LTrim(Str(Target.Row))).Select
     With Selection
        .Interior.ColorIndex = 41
        .Font.Name = Arial
        .Font.Size = 10
        .HorizontalAlignment = xlCenter
     End With

    Range("Q" & LTrim(Str(Target.Row + 1)) & ":Q" & LTrim(Str(Target.Row + 1))).Select

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas