Se ha producido un error 6 en tiempo de ejecucion :desbordamiento

Tengo este codigo que es para ingresar importes en un listbox el tema es que no me permite ingresar importe grandes como por ejemplo 1.000.000 o mayores y tambien necesito que los numeros que ingresan al listbox tengan formato de numero muchas gracias

Private Sub CommandButton1_Click()
Dim i
Dim Valor As Integer
Dim Valor1 As Integer

For i = 1 To 17
If VBA.IsNumeric(Me.Controls("TextBox" & i).Value) Then
Valor = Me.Controls("TextBox" & i).Value
'Valor1 = Val(Valor1) + Val(Valor)
Valor1 = Valor1 + Valor
Else
'
End If

Next i

Me.Label2.Caption = Valor1

End Sub

3 respuestas

Respuesta
2

Ensaye con este código (no lo he probado)

Private Sub CommandButton1_Click()
Dim i
Dim Valor As Double
Dim Valor1 As Double
For i = 1 To 17
If VBA.IsNumeric(Me.Controls("TextBox" & i).Value) Then
Valor = CDbl(Me.Controls("TextBox" & i).Value)
'Valor1 = Val(Valor1) + Val(Valor)
Valor1 = Valor1 + Valor
Else
'
End If
Next i
Me.Label2.Caption = Valor1
End Sub

excelente eduardo lo que neceistiaba dos cosas ma si pueden ser que los numeros cuando los ingreso al textbox me marce los decimales es decir 1.200.000 o 1.200.000,23 y que al ingresar al textbos con enter me vaya tirado el total sin la necesidad de apretar el command button desde ya mil gracias

Si puede suba la imagen del formulario o envíeme la base de datos con información ficticia a [email protected] 

Ahí te mande el archivo por mail Eduardo espero puedas ayudarme mil gracias

No llegó el archivo debe enviarlo comprimido en RAR o ZIP

Es un archivo de excel chico no llego lo vuelvo a reenviar

No respondo consultas de Excel.

Respuesta

Revisa sobre cómo declarar las variables:

https://m.youtube.com/watch?v=HfFCtMl189U 

De paso también te serviría este:

https://m.youtube.com/watch?v=PupmVvM16-8 

Sal u dos

Respuesta

Puedes cambiar el tipo de datos de las variables "Valor" y "Valor1" a "Long" en lugar de "Integer". El tipo "Long" puede manejar números más grandes que el tipo "Integer". Aquí tienes el código modificado:

Private Sub CommandButton1_Click()
Dim i As Integer
Dim Valor As Long
Dim Valor1 As Long
For i = 1 To 17
    If VBA.IsNumeric(Me.Controls("TextBox" & i).Value) Then
        Valor = CLng(Me.Controls("TextBox" & i).Value)
        Valor1 = Valor1 + Valor
    Else
        ' No haces nada en caso de que el valor no sea numérico
    End If
Next i
Me.Label2.Caption = FormatNumber(Valor1, 0) ' Aplica formato de número al valor y lo muestra en la etiqueta
End Sub

En este código, he utilizado la función CLng para convertir el valor ingresado en cada TextBox a un número de tipo "Long". También he añadido la función FormatNumber para dar formato al valor final antes de mostrarlo en la etiqueta "Label2". El último parámetro de FormatNumber (0) indica que no se mostrarán decimales.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas