Macro buscar

Estimada Elsa, tengo esta macro que ordena por fila y borra los repetidos y que trabaja bien, gracias a ty, pero necesariamente tiene que ordenar las filas o no encontrara nada.
Range("a1").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(-1, 0).Select
ActiveCell.Offset(0, 1).Select
celdaactiva = ActiveCell.Address
Range("a1:" + celdaactiva).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
contador = 0
Valor = ActiveCell.Value
ActiveCell.Offset(1, 0).Range("A1").Select
While ActiveCell.Value <> ""
If ActiveCell.Value = Valor Then
Selection.EntireRow.Interior.ColorIndex = 42
contador = contador + 1
Else
Valor = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
End If
Wend
Respuesta = MsgBox("Se han encontrado " & contador & " elementos repetidos", 1, "Número de repetidos")
Range("a1").Select
End Sub
Quisiera ver como puede encontrar duplicados sin que tenga que estar en la fila de abajo, así ya no se ordenaría y tendría una macro más liviana.
Yo ya lo intente pero no lo conseguí, es así que nuevamente recurro a tu ayuda.
Gracias nuevamente
Saludos Ernesto

1 Respuesta

Respuesta
1
La rutinas que encuentres en las repuestos son para ese caso concreto, luego hay que ajustar a las necesidades de cada libro.
Lo que mencionas de ir a la fila de abajo, es para encontrar la última celda con datos, esto mismo podes lograrlo con esta instrucción:

filaUlt = range("A65536").end(xlup).Row
'a continuación se establece el rango:
Range("A1:A" & filaUlt).Select

Quitá entonces todas las líneas anteriores.
Luego continúa el ordenamiento (Sort). Esto es inevitable si querés eliminar duplicados, cosa que esta rutina no hace sino que solo las colorea
Para evitar ordenar la tabla, podrías utilizar una col auxiliar donde colocarás la función CONTAR. SI(rango;criterio) que te devolverá valores > 1 si se trata de registros repetidos.
Entonces una rutina que evalúe esta col auxiliar (col DE en mi ejemplo) y elimine los duplicados, puede ser esta:
Sub duplicados()
'desarrollada por Elsamatilde el 30/11/08
Range("D2").Select
While ActiveCell <> Empty     'recorre la col hasta encontrar 1 celda vacía.
If ActiveCell.Value > 1 Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Wend
End Sub

Saludos
Elsa
*Encontrarás más rutinas y descarga de ejemplos en mi sitio. También manuales para todos los niveles
http://es.geocities.com/lacibelesdepunilla/manual_VBA
La verdad era la otra pregunta, esta no sorry...
Solicito una macro que busque una información en una planilla de hoja 1 que es semanal y si encuentra un parámetro = en la hoja 2 que es mensual, por ejemplo una fecha en la hoja 2, que copie todo lo de la hoja 1 a la 2.
Ejemplo:
Hpja 1
Día Fecha Patente Operador ...
Lun   10/11/08      wrtr-34      Juan Perez
Hoja 2
Día Fecha Patente Operador
Lun    10/11/08
Si encuentra la misma fecha que copie todo lo de la derecha de la hoja uno a la hoja dos en el mismo orden...
Espero me puedas ayudar... y Gracias
Lo siento, pero no podes utilizar 1 consulta para hacer 2 consultas. Solo imaginate si todos hicieran lo mismo... ¿se comprende verdad?
Finalizá esta y luego en otra consulta el nuevo tema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas