2 maneras de sumar números de un ListBox en Excel [VBA]

En este video tutorial te voy a mostrar dos maneras en las que puede sumar todos los elementos que haya un Control ActiveX ListBox, para que lo apliques en tus desarrollos con macros en Excel.

Ver Video Sumar números en ListBox

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Cómo lo hacemos

Tenemos un Formulario en Excel VBA que contiene controles ActiveX, los cuales enlisto a continuación:

  • Un Cuadro de texto o TextBox.
  • Dos Botones CommandButtons.
  • Un Cuadro de lista o ListBox.
  • Dos Etiquetas o Labels.

Formulario para sumar elementos de un ListBox en Excel con VBA

Figura 1. Formulario para sumar elementos de un ListBox en Excel con VBA.

Cómo funciona el Formulario

Al ingresar un valor numérico en cuadro de texto y al presionar el botón Agregar, el valor se añadirá al ListBox y se irán acumulando los valores en la etiqueta SUMA. La primera vez que se presione el botón Agregar el valor se añadirá a la etiqueta; en la segunda vuelta, el valor de añadirá al ListBox y se sumará al valor de la etiqueta.

Sumar valores en ListBox de Excel VBA

Figura 2. Sumar valores en ListBox de Excel VBA.

Código VBA de la macro

Ahora te regalo el código VBA usado en el Formulario.

Option Explicit

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh

Private Sub CommandButton1_Click()
Dim Valor As Integer

Valor = Me.txtNumero.Value

Me.ListBox1.AddItem Valor
Me.txtNumero.Value = ""
Me.lblTotal = VBA.Format(Me.lblTotal.Caption + Valor, "Currency")
Me.txtNumero.SetFocus

End Sub

Private Sub CommandButton2_Click()
Dim i As Integer
Dim Valor As Integer
Dim Suma As Long

For i = 0 To Me.ListBox1.ListCount - 1
    Valor = Me.ListBox1.List(i)
    Suma = Suma + Valor
Next i

MsgBox Suma

End Sub

Private Sub txtNumero_Change()
    Dim Texto As Variant
    Dim Caracter As Variant
    Dim Largo As Integer
    Dim i As Integer
    Dim Caracter1 As String
    On Error Resume Next
    Texto = Me.txtNumero.Value
    Largo = Len(Me.txtNumero.Value)
    For i = 1 To Largo
        Caracter = Mid(Texto, i, 1)
        If Caracter <> "" Then
            If Caracter < Chr(48) Or Caracter > Chr(57) Then
                Me.txtNumero.Value = Replace(Texto, Caracter, "")
            Else
            End If
        End If
    Next i
    On Error GoTo 0
    Caracter = 0
    Caracter1 = 0
End Sub

Private Sub UserForm_Initialize()
Me.txtNumero.SetFocus
Me.CommandButton1.Default = True
End Sub

Descarga el archivo de ejemplo

Sumar números en ListBox – EXCELeINFO.zip

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: