Excel - Rellenar con borde según celda

 
Vista:
sin imagen de perfil
Val: 13
Ha aumentado su posición en 2 puestos en Excel (en relación al último mes)
Gráfica de Excel

Rellenar con borde según celda

Publicado por Andre (8 intervenciones) el 13/01/2020 16:47:40
Hola, necesito vuestra ayuda, tengo una planilla con datos de trabajadores que se les denomina ROL, el tema que tiene información de todo el año de distintos ítem. El pero es que quiero destacar fila con un relleno según su numero de identificación. Adjunto imágenes para detallar mejor.




ORIGINAL


OBJETIVO

El objetivo es destacar fila según rol.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Rellenar con borde según celda

Publicado por Antoni Masana (2463 intervenciones) el 13/01/2020 18:21:08
Sube un libro de ejemplo.

Se puede hacer una macro.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 13
Ha aumentado su posición en 2 puestos en Excel (en relación al último mes)
Gráfica de Excel

Rellenar con borde según celda

Publicado por Andre (8 intervenciones) el 13/01/2020 18:36:14
Adjunto lo solicitado.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Rellenar con borde según celda

Publicado por Antoni Masana (2463 intervenciones) el 13/01/2020 20:51:19
Esta es la macro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Option Explicit
 
Sub Marca_Rol()
    Dim Fila As Long, Desde As Long, Hasta As Long, Rol As Long
 
    Call Limpia_Trazos
    Fila = 3
    Desde = 0
    Hasta = 0
    While Cells(Fila, "C") <> Empty
        If Desde = 0 Then Desde = Fila: Rol = Cells(Fila, "A")
        If Rol <> Cells(Fila, "A") Then
           Hasta = Fila - 1
           Range("A" & Desde & ":A" & Hasta).Select
           Range(Selection, Selection.End(xlToRight)).Select
           Call Trazo_Medio
           Desde = 0
           Hasta = 0
        End If
        Fila = Fila + 1
    Wend
    Hasta = Fila - 1
    Range("A" & Desde & ":A" & Hasta).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Call Trazo_Medio
End Sub
 
Private Sub Limpia_Trazos()
    Range("A3:A19").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Range("B3").Select
End Sub
 
Private Sub Trazo_Medio()
    Selection.Font.Bold = True
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Range("AAO4").Select
End Sub
 
Private Sub Trazo_Grueso()
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThick
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThick
    End With
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub

Antes de poner los trazos limia los que hubiese anteriores.
Tiene la opción de poner un trazo medio o grueso (linea de separación de rol).
Solo debes cambiar las dos Sentencias: Call Trazo_Medio por Call Trazo_Grueso

Adjunto dos libro de muestra con los dos tipos de trazo.


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 13
Ha aumentado su posición en 2 puestos en Excel (en relación al último mes)
Gráfica de Excel

Rellenar con borde según celda

Publicado por Andre (8 intervenciones) el 13/01/2020 21:13:58
Muchas gracias Maestro!!!, funciona espectacular.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar