Cita:
Iniciado por pkj Concuerdo con Erbuson en que no se tiene muy claro que intentas hacer en ese código.
Según tu texto (y en contra de lo que parece querer tu codigo) se me hace que intentas algo como esto:
Código vb:
Ver originalDim X As Long, I As Long, REINICIAR As Integer
REINICIAR = 1
Do Until REINICIAR = 0
REINICIAR = 0
For I = 1 To List1.ListCount - 2
For X = I + 1 To List1.ListCount - 1
If List1.List(I) = List1.List(X) Then ' SI TIENEN EL MISMO CODIGO SE SUMAN
List2.List(I) = Val(List2.List(I)) + Val(List2.List(X))
List3.List(I) = Val(List3.List(I)) + Val(List3.List(X))
List4.List(I) = Val(List4.List(I)) + Val(List4.List(X))
List5.List(I) = Val(List5.List(I)) + Val(List5.List(X))
List1.RemoveItem X
List2.RemoveItem X
List3.RemoveItem X
List4.RemoveItem X
List5.RemoveItem X
REINICIAR = 1
Exit For
End If
Next X
If REINICIAR = 1 Then Exit For
Next I
Loop
El como se sumen ya tu lo verás. Eso del Round y tal...
Saludos
y si hay mas registros iguales' porejemplo en un list con 100000 registros 6255 son iguales?
gracias
mira mi codigo:
Código vb:
Ver originalFor I = 0 To List1.ListCount - 2
if I >= List1.ListCount Then Exit For le tuve que poner esa condicion porque sino al quitar los campos repetidos el for sigue de largo y me tira error, aunque en teoria no deveria si el for esta en 9 y listcount en 9 o 10 deberia salirse!!
List1.ListIndex = I
P = List1.ListIndex
For X = 0 To List1.ListCount - 2
'If X >= List1.ListCount Then Exit For
If eli = True Then
X = X - 1
eli = False
End If
List1.ListIndex = X
If List1.ListIndex = P Then GoTo sig
If List1.List(I) = List1.List(X) Then ' SI TIENEN EL MISMO CODIGO SE SUMAN
uni = uni + Int(Val(List5.List(X)))
peso = Round(peso, 2) + Round(Val(List3.List(X)), 2)
neto = neto + Round(Val(List4.List(X)))
List1.RemoveItem X
List2.RemoveItem X
List3.RemoveItem X
List4.RemoveItem X
List5.RemoveItem X
eli = True
REINICIAR = 1
est = True
'Exit For
End If
sig:
Next X
' If REINICIAR = 1 Then Exit For
Next I
Loop
que opinas? como lo podria mejorar?
gracias ;)
edito----
no funciona con muchos registros u.u