Do While con valores de textbox y celdas vba
Publicado por Maria Camila (2 intervenciones) el 08/03/2017 17:44:32
Hola a todos,
Tengo un código en vba excel que busca que una vez se seleccione un valor en un comboBox, busque ese mismo valor en una hoja de cálculo y compare el valor que se ingresó a un textbox con el de la celda que se encuentra dos columnas a la derecha. Siempre que el valor del textbox sea mayor al de la celda, se debe sumar 24 a dicha celda y restar 1 a otra celda, hasta que ya sean iguales o el valor de la celda sea mayor al del textbox, se debe restar el valor del textbox con el que quedó la celda.
Esto es para el egreso de cajas o unidades en un inventario. La caja trae 24 unidades, si hay x cajas y unas pocas unidades sueltas y quiero egresar unas unidades pero con las que tengo sueltas no me alcanza, tendría que restarle a cajas, sumarle a unidades y ahí si restarle a unidades lo que quiero egresar. Diferencio entre los valores del combobox, ya que las unidades por caja de cada producto cambian de acuerdo a la presentación.
Al ejecutar el código, deja de funcionar excel y tengo que cerrarlo bruscamente, tal vez me puedan ayudar. Gracias.
El código que llevo, con respecto a esa parte, se muestra a continuación:
Do While True
producto = 4
If (Worksheets("PRODUCTOS").Cells(producto, 1).Text = (Me.ComboBox1.Text)) Then Exit Do
producto = producto + 1
Loop
If (ComboBox1 = "Vinagre Blanco 500 ml" Or ComboBox1 = "Vinagre Rojo 500 ml" Or ComboBox1 = "Vinagre Frutas" Or ComboBox1 = "Vinagre Limón" Or ComboBox1 = "Vinagre Manzana 500 ml" Or ComboBox1 = "Multiusos 500 ml" Or ComboBox1 = "Vinagre Blanco 900 ml" Or ComboBox1 = "Vinagre Rojo 900 ml") Then
Do While True
If (Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2).Value < TextBox10.Value) Then Exit Do
Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 1).Value = Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 1).Value - 1
Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2).Value = Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2).Value + 24
Loop
Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2) = Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2) - TextBox10.Value
If (Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2) >= TextBox10.Value) Then
Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2) = Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2) - TextBox10.Value
Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 1) = Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 1) - TextBox8.Value
End If
End If
Tengo un código en vba excel que busca que una vez se seleccione un valor en un comboBox, busque ese mismo valor en una hoja de cálculo y compare el valor que se ingresó a un textbox con el de la celda que se encuentra dos columnas a la derecha. Siempre que el valor del textbox sea mayor al de la celda, se debe sumar 24 a dicha celda y restar 1 a otra celda, hasta que ya sean iguales o el valor de la celda sea mayor al del textbox, se debe restar el valor del textbox con el que quedó la celda.
Esto es para el egreso de cajas o unidades en un inventario. La caja trae 24 unidades, si hay x cajas y unas pocas unidades sueltas y quiero egresar unas unidades pero con las que tengo sueltas no me alcanza, tendría que restarle a cajas, sumarle a unidades y ahí si restarle a unidades lo que quiero egresar. Diferencio entre los valores del combobox, ya que las unidades por caja de cada producto cambian de acuerdo a la presentación.
Al ejecutar el código, deja de funcionar excel y tengo que cerrarlo bruscamente, tal vez me puedan ayudar. Gracias.
El código que llevo, con respecto a esa parte, se muestra a continuación:
Do While True
producto = 4
If (Worksheets("PRODUCTOS").Cells(producto, 1).Text = (Me.ComboBox1.Text)) Then Exit Do
producto = producto + 1
Loop
If (ComboBox1 = "Vinagre Blanco 500 ml" Or ComboBox1 = "Vinagre Rojo 500 ml" Or ComboBox1 = "Vinagre Frutas" Or ComboBox1 = "Vinagre Limón" Or ComboBox1 = "Vinagre Manzana 500 ml" Or ComboBox1 = "Multiusos 500 ml" Or ComboBox1 = "Vinagre Blanco 900 ml" Or ComboBox1 = "Vinagre Rojo 900 ml") Then
Do While True
If (Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2).Value < TextBox10.Value) Then Exit Do
Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 1).Value = Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 1).Value - 1
Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2).Value = Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2).Value + 24
Loop
Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2) = Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2) - TextBox10.Value
If (Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2) >= TextBox10.Value) Then
Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2) = Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 2) - TextBox10.Value
Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 1) = Worksheets("PRODUCTOS").Cells(producto, 1).Offset(0, 1) - TextBox8.Value
End If
End If
Valora esta pregunta


0