Error Desbordamiento en la ejecución de un Userform dentro de Excel

Estoy trabajando en un proyecto en Excel 2007 y al probar el código del UserForm me aparece un error de Desbordamiento en la ejecución del UserForm

El código que estoy ejecutando es:

Private Sub cbm_CODE_Change()
If CARGANDO Then Exit Sub
        CARGANDO = True
            cbm_DESCRIPTION = ""
            If cbm_CODE.ListIndex > -1 Then
                cbm_DESCRIPTION = cbm_DESCRIPTION.List(cbm_CODE.ListIndex)
End If
CARGANDO = False
Dim busco
Dim dato As Long, I As Long
If cbm_CODE = "" Then Exit Sub
dato = cbm_CODE.Value
Set hojaB = Sheets("APP_DATA")
For I = 5 To hojaB.Range("J" & Rows.Count).End(xlUp).Row
If hojaB.Range("J" & I) = dato Then
txt_CU.Text = hojaB.Range("L" & I)
Exit For
End If
Next I
End Sub

La Base de Datos correspondiente se encuentra  a partir de la columna I3 de la Hoja APP_DATA

1 Respuesta

Respuesta
1

Cuando dice desbordamiento es que el tipo de datos que declaraste la variable no es suficiente para la cantidad de datos que almacena. Para detectar que variable sucede esto te recomiendo que ejecutes paso a paso por instrucciones. Así al momento del desbordamiento podrás ver en que línea quedo. Presionando F8 inicias el paso a paso por instrucciones

Estimado Manuel:

El depurador me conduce al combobox donde se encuentra el código de referencia del producto

Esta es mi Base de Datos:

Gracias por la ayuda

Saludos 

Blás

No lo declares long ni integer manejalo como cadena STRING.

dato as string

Si te fue útil coméntanos y recuerda valorar la respuesta.

Estimado Manuel:

Ahora ya no me aparece ningún error, pero mi código sigue sin funcionar, el código actual es este:

Private Sub cbm_CODE_Change()
If CARGANDO Then Exit Sub
        CARGANDO = True
            cbm_DESCRIPTION = ""
            If cbm_CODE.ListIndex > -1 Then
                cbm_DESCRIPTION = cbm_DESCRIPTION.List(cbm_CODE.ListIndex)
End If
CARGANDO = False
Dim busco
Dim dato As String, I As Long
If cbm_CODE = "" Then Exit Sub
dato = cbm_CODE.Value
Set hojaB = Sheets("APP_DATA")
For I = 5 To hojaB.Range("J" & Rows.Count).End(xlUp).Row
If hojaB.Range("J" & I) = dato Then
txt_SHOW.Text = hojaB.Range("L" & I)
Exit For
End If
Next I
End Sub

Gracias por la ayuda

Saludos

Blás

En la primera línea no le pones condición alguna solo dice

if cargando then

¿Cargando qué tiene que cumplir? ser = ser > ser <

Pon la condición y quizás funcione.

Estimado Manuel:

Esta parte del código es la que no me funciona

Dim busco
Dim dato As String, I As Long
If cbm_CODE = "" Then Exit Sub
dato = cbm_CODE.Value
Set hojaB = Sheets("APP_DATA")
For I = 5 To hojaB.Range("J" & Rows.Count).End(xlUp).Row
If hojaB.Range("J" & I) = dato Then
txt_SHOW.Text = hojaB.Range("L" & I)
Exit For
End If
Next I
End Sub

Esta parte de la instrucción:

Private Sub cbm_CODE_Change()
If CARGANDO Then Exit Sub
        CARGANDO = True
            cbm_DESCRIPTION = ""
            If cbm_CODE.ListIndex > -1 Then
                cbm_DESCRIPTION = cbm_DESCRIPTION.List(cbm_CODE.ListIndex)
End If
CARGANDO = False

solamente me carga los datos en los combobox's y estos funcionan con normalidad

CARGANDO es una variable General :

Dim CARGANDO
Private Sub cbm_CODE_Change()
If CARGANDO Then Exit Sub
        CARGANDO = True
            cbm_DESCRIPTION = ""
            If cbm_CODE.ListIndex > -1 Then
                cbm_DESCRIPTION = cbm_DESCRIPTION.List(cbm_CODE.ListIndex)
End If
CARGANDO = False
Dim busco
Dim dato As String, I As Long
If cbm_CODE = "" Then Exit Sub
dato = cbm_CODE.Value
Set hojaB = Sheets("APP_DATA")
For I = 5 To hojaB.Range("J" & Rows.Count).End(xlUp).Row
If hojaB.Range("J" & I) = dato Then
txt_SHOW.Text = hojaB.Range("L" & I)
Exit For
End If
Next I
End Sub

Gracias por la ayuda

Saludos 

Blás

La parte que no te funciona es donde cargando no le dices que condición debe cumplir. Si no le dices que condición debe cumplir cargando JAMAS entrara en la rutina dentro del if

Ademas de eso despues de cargando le dices exit sub es decir si acaso llega a entrar deja de ejecutar todas las acciones que esten escritas xq exit sub te saca de la ejecucion .

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas