Como hago para que el listbox BVA de excel identifique si el articulo ya esta en el y me agregue más 1 ala cantidad

Como hago para que el listbox de BVA de excel identifique si el articulo ya esta dentro del listbox solo me sume más 1 ala cantidad de articulo con ese código Ayuda por Favor Soy Novato en programación

El código que utilizo para llenar el listbox es este

Private Sub INGRESARCODIGOPRODUCTO_Change()

On Error Resume Next
Dim fila As Double
Dim Final As Double
If (txt_cod) = "" Then
txt_desc.Text = ""
'CANTIDAD.Text = ""
TXT_IVA.Text = ""
TXT_PVP.Text = ""
TXT_C_SIN_IVA.Text = ""
End If
For fila = 2 To 1000000
If Hoja1.Cells(fila, 1) = "" Then
Final = fila - 1
Exit For
End If
Next
For fila = 2 To Final
If Val(txt_cod.Value) = Hoja1.Cells(fila, 1) Then
txt_desc.Text = Hoja1.Cells(fila, 3)
TXT_IVA.Text = Hoja1.Cells(fila, 8)
TXT_PVP.Text = Hoja1.Cells(fila, 10)
Me.ListBoxArticulos.ColumnCount = 7
Me.ListBoxArticulos.ColumnWidths = "100 pt;260 pt;100 pt;100 pt;150 pt;200 pt;180 "
With ListBoxArticulos
.AddItem
.List(.ListCount - 1, 0) = txt_cod.Text
.List(.ListCount - 1, 1) = txt_desc.Text
.List(.ListCount - 1, 2) = Txt_CANT.Text
.List(.ListCount - 1, 3) = TXT_PVP.Text
.List(.ListCount - 1, 4) = TXT_IVA.Text

1 Respuesta

Respuesta
1

Puedes explicar el funcionamiento de lo que quieres, es decir, qué capturas en este control: INGRESARCODIGOPRODUCTO_Change, ¿es un textbox o un combo?

¿Después por qué comparas este txt_cod con el dato de la hoja?

¿Existen varios registros con este dato txt_cod?

Disculpa Dante Amor capturo codigo de producto de una hoja en excel en un texbox que se llama txt_cod y lo que quiero saber es que codigo debo agregar al listbox para que no me agregue el mismo codigo mas abajo si no que al mismo codigo me sume mas 1 por si quiero 5 productos con el mismo item paso 5 veces por el codigo de barras me ponga la cantidad de 5 no se como hacerlo Gracias por tu ayuda

Private Sub txt_cod_Change()

On Error Resume Next
Dim fila As Double
Dim Final As Double
If (txt_cod) = "" Then
txt_desc.Text = ""
'CANTIDAD.Text = ""
TXT_IVA.Text = ""
TXT_PVP.Text = ""
TXT_C_SIN_IVA.Text = ""
End If
For fila = 2 To 1000000
If Hoja1.Cells(fila, 1) = "" Then
Final = fila - 1
Exit For
End If
Next
For fila = 2 To Final
If Val(txt_cod.Value) = Hoja1.Cells(fila, 1) Then
txt_desc.Text = Hoja1.Cells(fila, 3)
TXT_IVA.Text = Hoja1.Cells(fila, 8)
TXT_PVP.Text = Hoja1.Cells(fila, 10)
Me.ListBoxArticulos.ColumnCount = 7
Me.ListBoxArticulos.ColumnWidths = "100 pt;260 pt;100 pt;100 pt;150 pt;200 pt;180 "
With ListBoxArticulos
.AddItem
.List(.ListCount - 1, 0) = txt_cod.Text
.List(.ListCount - 1, 1) = txt_desc.Text
.List(.ListCount - 1, 2) = Txt_CANT.Text
.List(.ListCount - 1, 3) = TXT_PVP.Text
.List(.ListCount - 1, 4) = TXT_IVA.Text

Sigo sin entender cuál es tu proceso, ¿por qué buscas el código en la hoja?

En fin, te ayudo con la parte de buscar el código en el listbox.

Te recomiendo que captures el código y la cantidad; después presiones un botón para agregar el código al listbox. Tú tienes el evento change, por cada letra que capturas se ejecuta el programa, entonces si capturas un código de 10 letras, se ejecuta 10 veces, por eso te recomiendo un botón.

Te anexo la macro, toma como ejemplo para que lo adaptes a tu código.

Private Sub CommandButton1_Click()
'Por.Dante Amor
    '
    If txt_cod = "" Then
        MsgBox "Captura el código"
        txt_cod.SetFocus
        Exit Sub
    End If
    If Txt_CANT = "" Then
        MsgBox "Captura una cantidad"
        Txt_CANT.SetFocus
        Exit Sub
    End If
    'Buscar en el listbox
    existe = False
    For i = 0 To ListBoxArticulos.ListCount - 1
        If ListBoxArticulos.List(i) = txt_cod Then
            existe = True
            Exit For
        End If
    Next
    '
    With ListBoxArticulos
        If existe Then
            'Si ya existe acumula cantidad
            cant = IIf(IsNumeric(Txt_CANT), CDbl(Txt_CANT), 0)
            .List(i, 2) = Format(CDbl(ListBoxArticulos.List(i, 2)) + cant, "#,##0.00")
        Else
            'si no existe se agrega al final
            .AddItem
            .List(.ListCount - 1, 0) = txt_cod.Text
            .List(.ListCount - 1, 1) = txt_desc.Text
            .List(.ListCount - 1, 2) = Txt_CANT.Value
        End If
    End With
End Sub

Si tienes problema con esta línea:

.List(i, 2) = Format(CDbl(ListBoxArticulos.List(i, 2)) + cant, "#,##0.00")

Prueba con esta:

.List(i, 2) = CDbl(ListBoxArticulos.List(i, 2)) + cant

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas