un error inesperado
Private Sub Form_Load()
Dim i As Integer
contador = -1
contador2 = 0
Do
contador2 = contador2 + 1
contador = contador + 1
dato1 = Fomr1.List1.List(contador)
dato2 = Form1.List2.List(contador)
dato3 = Form1.List3.List(contador)
dato4 = Form1.List4.List(contador)
If dato1 = "" Then GoTo 1
numero = contador2
If dato3 = "" Then dato3 = 0
If dato4 = "" Then dato4 = 0
For i = 0 To Me.List2.ListCount
If Form2.List2.List(i) = dato2 Then
contador2 = contador2 - 2
Me.List3.List(i) = CDbl(Me.List3.List(i)) + dato3
Me.List4.List(i) = CDbl(Me.List4.List(i)) + dato4
Else
Me.List1.AddItem numero
Me.List2.AddItem dato2
Me.List3.AddItem dato3
Me.List4.AddItem dato4
Me.List11.AddItem dato1
End If
1 Exit For
Next i
Loop Until Form1.List3.List(contador) = Empty And Form1.List4.List(contador) = Empty And Form1.List2.List(contador) = "------------------------------------------------------------------------------------------------------------------------------------" And Form1.List2.List(contador + 1) = Empty
End Sub
Explico: esto lo que por mi logica lo que tendria que hacer es leer los datos que hay en los 4 list del Form1, y pasarlos al Form2(Me)
de forma que si el Dato2 ya esta impreso en este, le sume al valor que tiene en el Form1 el valor antes pasado al Form2 (espero que se
me entienda). Luego para terminar debe coincidir que los datos... bueno si leen el Loop Until van a entender cuando termina. Pero el
problema es que yo ingreso un dos renglones en los list con los datos de cada uno, los vuelvo a ingresar esperando que si yo tengo por ejemplo
platos 100 0
vasos 0 100
y los vuelvo a ingresar de forma identica me tendria que quedar:
platos 200 0
vasos 0 200
pero en lugar de mostrar esos datos en el Form2, muestra esto:
platos 200 0
vasos 0 100
vasos 0 100
se que es dificil de entender pero si alguien puede, y logra encontrar mi error por favor ayudenme
TRATE DE EXPLICARME LO MEJOR POSIBLE, GRACIAS POR SU ESFUERSO POR ENTENDER CUALQUIER DUDA ESCRIBANME
Dim i As Integer
contador = -1
contador2 = 0
Do
contador2 = contador2 + 1
contador = contador + 1
dato1 = Fomr1.List1.List(contador)
dato2 = Form1.List2.List(contador)
dato3 = Form1.List3.List(contador)
dato4 = Form1.List4.List(contador)
If dato1 = "" Then GoTo 1
numero = contador2
If dato3 = "" Then dato3 = 0
If dato4 = "" Then dato4 = 0
For i = 0 To Me.List2.ListCount
If Form2.List2.List(i) = dato2 Then
contador2 = contador2 - 2
Me.List3.List(i) = CDbl(Me.List3.List(i)) + dato3
Me.List4.List(i) = CDbl(Me.List4.List(i)) + dato4
Else
Me.List1.AddItem numero
Me.List2.AddItem dato2
Me.List3.AddItem dato3
Me.List4.AddItem dato4
Me.List11.AddItem dato1
End If
1 Exit For
Next i
Loop Until Form1.List3.List(contador) = Empty And Form1.List4.List(contador) = Empty And Form1.List2.List(contador) = "------------------------------------------------------------------------------------------------------------------------------------" And Form1.List2.List(contador + 1) = Empty
End Sub
Explico: esto lo que por mi logica lo que tendria que hacer es leer los datos que hay en los 4 list del Form1, y pasarlos al Form2(Me)
de forma que si el Dato2 ya esta impreso en este, le sume al valor que tiene en el Form1 el valor antes pasado al Form2 (espero que se
me entienda). Luego para terminar debe coincidir que los datos... bueno si leen el Loop Until van a entender cuando termina. Pero el
problema es que yo ingreso un dos renglones en los list con los datos de cada uno, los vuelvo a ingresar esperando que si yo tengo por ejemplo
platos 100 0
vasos 0 100
y los vuelvo a ingresar de forma identica me tendria que quedar:
platos 200 0
vasos 0 200
pero en lugar de mostrar esos datos en el Form2, muestra esto:
platos 200 0
vasos 0 100
vasos 0 100
se que es dificil de entender pero si alguien puede, y logra encontrar mi error por favor ayudenme
TRATE DE EXPLICARME LO MEJOR POSIBLE, GRACIAS POR SU ESFUERSO POR ENTENDER CUALQUIER DUDA ESCRIBANME
claro Fede,
For i = 0 To Me.List2.ListCount
If Form2.List2.List(i) = dato2 Then
...
Else
...
End If
1 Exit For ◄─── siempre sale del bucle cuando i=0
Next i
For i = 0 To Me.List2.ListCount
If Form2.List2.List(i) = dato2 Then
...
Else
...
End If
1 Exit For ◄─── siempre sale del bucle cuando i=0
Next i
(ESTOS SÍMBOLOS ◄─── ERAN FLECHAS QUE SE HAN TRADUCIDO MAL)
un saludo.
un saludo.
a ver incrédulo, teclea
Alt + 17 y luego Alt + 196, y me lo vuelves a decir.
Alt + 17 y luego Alt + 196, y me lo vuelves a decir.
alt +16 es un signo d epregunta y alt + 196 es un guion :S, q tendrian q ser?
Fede, mi anterior respuesta iba dirigida al usuario "iojio", que se imaginó que me refería a estas flechas "< >", y yo me refería a estas otras "◄ ►".
La respuesta que a tí se refiere es la primera que dí. Que la razón por la cual sólo suma el primer elemento es porque después del primer valor del contador 'i' sale del For.
un saludo.
La respuesta que a tí se refiere es la primera que dí. Que la razón por la cual sólo suma el primer elemento es porque después del primer valor del contador 'i' sale del For.
un saludo.
Hola no entiendo por q tengo q poner esto "◄ ►". y si no lo pongo osea q pongo Exit for i=0 me dice q falta completar la instruccion. :S
no fede, no me refería a eso, lo que deberías hacer es eliminar la linea del Exit For
si saco el exit for esto e slo q pasa:
1 platos 200 0
2 basos 0 300
2 platos 200 0
-1 basos 0 200
-1 basos 0 100
1 platos 200 0
2 basos 0 300
2 platos 200 0
-1 basos 0 200
-1 basos 0 100
