Problemas con una maco de inventario al memento de ingresar una cantidad arriba de 30000

hola soy nuevo en esto y me gustaría saber si alguien me puede ayudar en la macro al momento de dar de alta en mis entradas la cantidad de 32270 me manda un error en tiempo de ejecución desbordamiento

Private Sub CommandButton1_Click()
Dim i As Integer
Dim j As Integer
Dim final As Integer
Dim actual As Integer

For i = 1 To 1000
If Hoja2.Cells(i, 1) = "" Then
final = i
Exit For
End If
Next

Hoja2.Cells(final, 1) = UserForm2.ComboBox1
Hoja2.Cells(final, 2) = UserForm2.TextBox1
Hoja2.Cells(final, 3) = UserForm2.TextBox2
Hoja2.Cells(final, 4) = UserForm2.TextBox4
Hoja2.Cells(final, 5) = UserForm2.TextBox6
Hoja2.Cells(final, 6) = UserForm2.TextBox7

For j = 1 To 1000
If Hoja6.Cells(j, 1) = Hoja2.Cells(final, 1) Then
actual = Hoja6.Cells(j, 3)
final = UserForm2.TextBox2 + actual     aquí se pone en amarillo
Hoja6.Cells(j, 3) = final
Exit For
End If
Next

UserForm2.ComboBox1 = ""
UserForm2.TextBox1 = ""
UserForm2.TextBox2 = ""
UserForm2.TextBox4 = ""
UserForm2.TextBox6 = ""
UserForm2.TextBox7 = ""
UserForm2.TextBox8 = ""


UserForm15.Hide
UserForm2.Hide

End Sub

alguna ayuda por favor

2 respuestas

Respuesta
1

El tipo de variables Integer admite enteros desde -32768 hasta +32767, pero puede utilizar en su lugar el tipo de variables Long, que admite enteros desde -2147483648 hasta +2147483647.

Respuesta
1

En VBA de excel no es necesario declarar las variables, sólo en algunos caso es necesario, por ejemplo, si vas a declara un arreglo. Pero para almacenar datos simples como número o letras no es necesario que hagas la declaración. En VBA cuando la variable recibe su primer valor en automático se determina el tipo de dato.

En este caso te recomiendo que no declares las variables, quita de tu macro las instrucciones y la macro se ejecutará sin problemas:

Dim i As Integer
Dim j As Integer
Dim final As Integer
Dim actual As Integer

También te recomiendo que cuando hagas operaciones con valores almacenados en un textbox los conviertas a valor numérico, ya que en el textbox, como su nombre lo dice almacena texto, en tu macro la suma quedaría así

final = val(UserForm2.TextBox2) + actual

Saludos. Dante Amor

No olvides valorar la respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas