Pintar filas alternas y suma total

Expertos alguien me podría ayudar como al momento de ingresar mis productos desde un formulario se pinten las filas de modo alterno con macros así como estilo de tabla y al final salga su la palabra total y su suma en numero con su formato azul y a medida que vaya registrando desde mi formulario corral la suma y la palabra total con sus formato y los colores de filas alternas un verde y otra en blanco como muestro en la imagen adjunta.

adjunto mi código de ingreso para añadir mis datos.

Private Sub Registrar_Click()
   Sheets("Productos").Select
        Range("A2").Select
        Application.GoTo Reference:="R65000C1"
        Selection.End(xlUp).Select
        ActiveCell.Offset(1, 0).Range("A1").Select
        ActiveCell.Offset(0, 0).Value = TextProductos
        ActiveCell.Offset(0, 1).Value = Val(TextCantidad)
End Sub

2 Respuestas

Respuesta
1

En la misma página de ayuda de Microsoft explica paso por paso como hacerlo. Aquí te dejo el link. https://bit.ly/2JX2cIU 

Sí pero allí solo te muestra como formato condicional y así  si lo sé hacer, pero yo lo quiero  con macros y con suma total así como lo muestro en la imagen adjunta.

Bueno me disculpo si lo que quieres es alternar colores https://www.excel-avanzado.com/18368/alternar-bandas-de-colores-con-macros.html ahí está con macros.

Respuesta
2

Este es el resultado de la macro

y esta es la macro al dar click agrega el registro, pinta las fila alternando colores y actualiza el total

Private Sub CommandButton1_Click()
Set datos = Range("A4").CurrentRegion
With datos
    FILAS = .Rows.Count
    TITULO = .Cells(FILAS, 1) = "TOTAL"
    If TITULO Then
        .Rows(FILAS).Clear
        FILAS = FILAS - 1
    End If
    .Cells(FILAS + 1, 1) = TextBox1.Text
    .Cells(FILAS + 1, 2) = TextBox2.Text
    If WorksheetFunction.IsEven(FILAS) Then .Rows(FILAS + 1).Interior.ColorIndex = 50
    If WorksheetFunction.IsOdd(FILAS) Then .Rows(FILAS + 1).Interior.ColorIndex = 34
    .Cells(FILAS + 2, 1) = "TOTAL"
    .Cells(FILAS + 2, 2) = WorksheetFunction.Sum(.Cells(2, 2).Resize(FILAS))
    .Rows(FILAS + 2).Interior.ColorIndex = 25
    .Rows(FILAS + 2).Font.ColorIndex = 2
End With
Set datos = Nothing
End Sub

¡Gracias! 

Excelente Experto James Bond, probé la macros y funciona de maravilla, una última consulta y salir de duda se puede poner la palabra total y su suma dejando una fila en blanco despues del último registro, así como lo puse en la imagen de tal manera que cuando lo cargue en un lisbox solo cargue los productos y cantidades y no coja el total.

Lo del total no afecta en nada dejarlo así, perosi, o quito entonces tendré que reescribir la macro, así que es más fácil programar la carga del listbox para que descarte la fila total mira la imagen el listbox cargo todas las filas incluyendo los encabezados y dejando fuera la fila total, ya solo queda que califiques mi respuesta

y esta es la macro que hace la carga de datos

Private Sub UserForm_Initialize()
Set datos = Range("A4").CurrentRegion
With datos
    FILAS = .Rows.Count
    With ListBox1
        .RowSource = datos.Rows(2).Resize(FILAS - 2).Address
        .ColumnHeads = True
        .ColumnCount = datos.Columns.Count
    End With
End With
Set datos = Nothing
End Sub

¡Gracias! 

Muchas gracias experto James Bond por su aclaración esa no la sabia, ahora ya despeje mis dudas.

Saludos y bendiciones.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas