Para Hector Miguel

16/05/2004 - 03:26 por Amadeo Govoni | Informe spam
Estimado
Vos has puesto esto

Sub Eliminar_Repetidos_Anteriores()
Dim Codigos As String, Horas As String, Repetidos As String, Fila As Long
Codigos = Range(Range("a2"), Range("a65536").End(xlUp)).Address
Horas = Range(Codigos).Offset(, 1).Address
With Range(Codigos)
If .Rows.Count = Evaluate("Sum(1/CountIf(" & Codigos & "," & Codigos &
"))") Then Exit Sub
For Fila = 1 To .Rows.Count
If Application.CountIf(Range(Codigos), .Cells(Fila)) > 1 _
And .Cells(Fila).Offset(, 1) < Evaluate("Max(If(" & Codigos & "=""" &
.Cells(Fila) & """," & Horas & "))") Then
If Repetidos <> "" Then Repetidos = Repetidos & ","
Repetidos = Repetidos & .Cells(Fila).Address
End If
Next
End With
If Repetidos <> "" Then Range(Repetidos).EntireRow.Delete
End Sub


Me podrias explicar las sentencias si tenes un poco de tiempo?

En realidad lo copie a excel
Funcionó sin error pero no hizo nada

Gracias por tu posible tiempo
Saludos Amadeo

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
16/05/2004 - 08:45 | Informe spam
hola, Amadeo !

Me podrias explicar las sentencias si tenes un poco de tiempo?


=> espero no 'aburrir' a quien 'se atreva' a leer mis 'explicaciones' :))

1> Sub Eliminar_Repetidos_Anteriores()
2> Dim Codigos As String, Horas As String, Repetidos As String, Fila As Long
3> Codigos = Range(Range("a2"), Range("a65536").End(xlUp)).Address
4> Horas = Range(Codigos).Offset(, 1).Address
5> With Range(Codigos)
6> If .Rows.Count = Evaluate("Sum(1/CountIf(" & Codigos & "," & Codigos & "))") Then Exit Sub
7> For Fila = 1 To .Rows.Count
8> If Application.CountIf(Range(Codigos), .Cells(Fila)) > 1 _
8a> And .Cells(Fila).Offset(, 1) < Evaluate("Max(If(" & Codigos & "=""" & .Cells(Fila) & """," & Horas & "))") Then
9> If Repetidos <> "" Then Repetidos = Repetidos & ","
10> Repetidos = Repetidos & .Cells(Fila).Address
11> End If
12> Next
13> End With
14> If Repetidos <> "" Then Range(Repetidos).EntireRow.Delete
15> End Sub
-
1, 11, 12, 13 y 15... 'sin comentarios' :))
2 = declaracion de las variables 'necesarias' para el 'proposito' del codigo
3 = 'obtencion' del rango [que se supone 'variable'] donde estan los codigos [solo la direccion]
4 = el rango de las horas [se supone que] debe ser 'desplazado' una columna a la derecha de los codigos
5 = 'vamos a trabajar' dentro del trango de los codigos
6 = si el numero de filas es 'igual' al numero de elementos 'unicos'... 'no hay nada que hacer'... nos salimos ;)
7 = 'recorremos' el rango de los codigos... 'fila por fila' [hasta la ultima]
8 y 8a = si la fila que 'estamos trabajando' tiene elementos 'repetidos' =>Y< la hora de la transaccion es 'menor' a la hora mas 'reciente' [para ese codigo] ...
10 y 11 = vamos 'construyendo' un 'nuevo' rango con las direcciones de 'esos' elementos 'repetidos'
14 = 'finalmente'... eliminamos las filas 'correspondientes' a 'ese' nuevo rango ;)
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
En realidad lo copie a excel. Funciono sin error pero no hizo nada


[probablemente] los codigos que estas usando son 'exclusivamente' =>numericos<=> revisa la 'continuacion' de la consulta 'original' <
¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Amadeo Govoni
17/05/2004 - 15:21 | Informe spam
Buen día Hector!!!!

El Ingeniero Sobrado de la consulta insertó un archivo y trabajé en él y no
me tiró nada, aunque se ejecutó sin error

Esate tiene numeros como códigos

Muchos saludos

Amadeo - Argentina
Respuesta Responder a este mensaje
#3 Héctor Miguel
18/05/2004 - 01:36 | Informe spam
hola, Amadeo !

El Ingeniero Sobrado ... inserto un archivo y trabaje en el y no me tiro nada, aunque se ejecuto sin error
... tiene numeros como codigos



el cambio que le sugeri [en respuesta al mensaje con el envio] y que al parecer ha funcionado, es...
-
realice las pruebas =>solo<= con codigos 'alfa-numericos' y...
[en la 'realidad'] estas usando codigos [exclusivamente] =>numericos<= :))
[para el caso] solo hay que sustituir las 'triples-comillas-dobles' por dobles-comillas 'simples'
¿en donde?... dentro del bucle 'For Fila = 1 To .Rows.Count ... Next'
existe una 'comparacion' usando el metodo/funcion 'Evaluate' en un 'If ... And ... Then'
=> cambia de: =>& "=""" & .Cells(Fila) & """," &<a 'solamente': =>& "=" & .Cells(Fila) & "," &<=> observa la 'desaparicion' de dos pares de comillas dobles:
despues del signo '=' y antes de la coma ',' :))

¿comentas?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida