Ver Mensaje Individual
  #8 (permalink)  
Antiguo 23/11/2011, 21:42
carnero
 
Fecha de Ingreso: noviembre-2009
Mensajes: 315
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: revision codigo: sacar duplicado

Cita:
Iniciado por pkj Ver Mensaje
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 original
  1. Dim X As Long, I As Long, REINICIAR As Integer
  2.  
  3.   REINICIAR = 1
  4.   Do Until REINICIAR = 0
  5.     REINICIAR = 0
  6.     For I = 1 To List1.ListCount - 2
  7.       For X = I + 1 To List1.ListCount - 1
  8.         If List1.List(I) = List1.List(X) Then ' SI TIENEN EL MISMO CODIGO SE SUMAN
  9.          List2.List(I) = Val(List2.List(I)) + Val(List2.List(X))
  10.           List3.List(I) = Val(List3.List(I)) + Val(List3.List(X))
  11.           List4.List(I) = Val(List4.List(I)) + Val(List4.List(X))
  12.           List5.List(I) = Val(List5.List(I)) + Val(List5.List(X))
  13.                                                                                                        
  14.           List1.RemoveItem X
  15.           List2.RemoveItem X
  16.           List3.RemoveItem X
  17.           List4.RemoveItem X
  18.           List5.RemoveItem X
  19.           REINICIAR = 1
  20.           Exit For
  21.         End If
  22.       Next X
  23.       If REINICIAR = 1 Then Exit For
  24.     Next I
  25.   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 original
  1. For I = 0 To List1.ListCount - 2
  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!!
  3.                 List1.ListIndex = I
  4.             P = List1.ListIndex
  5.            
  6.       For X = 0 To List1.ListCount - 2
  7.       'If X >= List1.ListCount Then Exit For
  8.            If eli = True Then
  9.             X = X - 1
  10.             eli = False
  11.             End If
  12.            
  13.             List1.ListIndex = X
  14.                      If List1.ListIndex = P Then GoTo sig
  15.         If List1.List(I) = List1.List(X) Then ' SI TIENEN EL MISMO CODIGO SE SUMAN
  16.  
  17.                                                                                                        
  18.                         uni = uni + Int(Val(List5.List(X)))
  19.                         peso = Round(peso, 2) + Round(Val(List3.List(X)), 2)
  20.                         neto = neto + Round(Val(List4.List(X)))
  21.                                                                                                        
  22.           List1.RemoveItem X
  23.           List2.RemoveItem X
  24.           List3.RemoveItem X
  25.           List4.RemoveItem X
  26.           List5.RemoveItem X
  27.          
  28.           eli = True
  29.           REINICIAR = 1
  30.             est = True
  31.           'Exit For
  32.          
  33.         End If
  34. sig:
  35.       Next X
  36.      ' If REINICIAR = 1 Then Exit For
  37.    Next I
  38.   Loop

que opinas? como lo podria mejorar?

gracias ;)

edito----
no funciona con muchos registros u.u

Última edición por carnero; 24/11/2011 a las 00:17