"Edición de macro Excel para Colorear y negrita celdas y fondo verde

Tengo esta macro

        wcolor = vbBlack: wbold = False
        If CheckBox4 Then wcolor = 3: wbold = True
        Cells(fil, col) = TextBox1          'Item #
        Cells(fil, col).Font.ColorIndex = wcolor
        Cells(fil, col).Font.Bold = wbold
        Cells(fil, col).Interior.ColorIndex = 43
        Cells(fil, col + 1) = TextBox2      'Producto
        Cells(fil, col + 1).Font.ColorIndex = wcolor
        Cells(fil, col + 1).Font.Bold = wbold
        Cells(fil, col + 1).Interior.ColorIndex = 43
        Cells(fil, col + 2) = TextBox3      'Descripcion del Producto
        Cells(fil, col + 2).Font.ColorIndex = wcolor
        Cells(fil, col + 2).Font.Bold = wbold
        Cells(fil, col + 2).Interior.ColorIndex = 43
        Cells(fil, col + 8) = TextBox4      'Cant.
        Cells(fil, col + 8).Font.ColorIndex = wcolor
        Cells(fil, col + 8).Font.Bold = wbold
        Cells(fil, col + 8).Interior.ColorIndex = 43
        Cells(fil, col + 9) = TextBox5      'Pagina #
        Cells(fil, col + 9).Font.ColorIndex = wcolor
        Cells(fil, col + 9).Font.Bold = wbold
        Cells(fil, col + 9).Interior.ColorIndex = 43

que hace esto en las lineas, una a la ves claro está

Quiero que algún experto, c esta o otra similar que haga lo misma funcionalidad me la edite para volverla más corta.

1 Respuesta

Respuesta
2

Quedaría así:

    wcolor = vbBlack: wbold = False
    If CheckBox4 Then wcolor = 3: wbold = True
    Call Formatear(fil, col, wcolor, wbold, TextBox1.Value)
    Call Formatear(fil, col + 1, wcolor, wbold, TextBox2.Value)
    Call Formatear(fil, col + 2, wcolor, wbold, TextBox3.Value)
    Call Formatear(fil, col + 8, wcolor, wbold, TextBox4.Value)
    Call Formatear(fil, col + 9, wcolor, wbold, TextBox5.Value)

Y tienes que agregar, dentro del mismo userform, el siguiente código:

Sub Formatear(fil, col, wcolor, wbold, wtext)
    Cells(fil, col) = wtext
    Cells(fil, col).Font.ColorIndex = wcolor
    Cells(fil, col).Font.Bold = wbold
    Cells(fil, col).Interior.ColorIndex = 43
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas