Macro elimina repetidos

Buen dia;

Tengo una macro que elimina teléfonos que se repiten dentro de una misma fila, la macro es buena pero lo malo es que solo me elimina cierta cantidad de columnas, desearía que me en lugar que revise solo 6 columnas esta macro sea mas automática que cuente la cantidad de cabeceras que tengo pudiendo ser desde 4 hasta 15 más o menos.

esta es la macro que utilizo:

Sub EJEMPLO()
'\m/
Range("a2").Select
Do While ActiveCell.Value <> ""
ubica = ActiveCell.Address
'El valor 4 se puede cambiar por otro valor dependiendo de las columnas que se van a examinar
Range(ActiveCell.Offset(0, 2), ActiveCell.Offset(0, 6)).Select
For Each celda In Selection
contarsi = Application.WorksheetFunction.CountIf(Selection, celda)
If contarsi <> 1 Then celda.ClearContents
Next
Range(ubica).Select
ActiveCell.Offset(1, 0).Select
Loop
Range("a2").Select
End Sub

1 Respuesta

Respuesta
1

Y en cada fila va a haber el mismo número de teléfonos o puede haber cantidades distintas. De las dos forma puede hacerse, aunque si fueran los mismos en todas las filas se podría simplificar.

Si mandaras el fichero también lo entendería mejor. Mi correo es

[email protected]

Pon como asunto el título de las pregunta y como nombre del libro me vendría bien su pusieras

EliminarTelefonos.XLSM

enviado!

Por lo que veo la macro que tienes elimina el primer teléfono entre los repetidos. Y seguramente asi es más rápida. También podría hacerse que dejara el primero y eliminara los siguientes.

Dime que te parece mejor.

Otra cosa es que se podrían compactar los teléfonos eliminando las celdas que quedan vacías, pero siempre que quieras, si no quieres las dejo en blanco.

Hola valero, me parece mejor Son buenos aportes

Estimado,

ME parecen buenas ideas, aun no recibo ninguna respuesta.

Retomamos la pregunta esta.

Es una pena no crear la hoja "Reformateos", porque ahí mando información de todo lo que sucede, puede ser útil para el usuario e imprescindible para el programador para saber si las operaciones se están haciendo bien. Por eso yo no la puedo quitar hasta última hora. Respecto a los teléfonos con cifras repetidas no entiendo por qué se tienen que borrar. Gracias a reformateos puedo verlos todos, entonces los hay de todo tipo, no solo porque empiecen con un departamento con cifras repetidas o por dos nueves que también es común sino por cualquier motivo.

Y en la hoja llamada Libro1 que es la que estoy probando a todas horas son 760 los teléfonos eliminados por eso. ¿No crees que son muchos? Yo pienso que seguramente se eliminan ahí muchos teléfonos auténticos.

Si pudieras decirme el motivo porque no puede haber cuatro cifras seguidas repetidas estaría más tranquilo, pero es que viendo lo que pasa me da la impresión de que se eliminan teléfonos que no se deberían quitar. Pero a lo que me digas, si me confirmas que con cuatro cifras seguidas se elimina yo lo hago así.

Si acaso cabe una matización. Comprobar esos cifras puede hacerse antes o después de los otros formateos. Si se hace después se eliminan más porque se añaden números de departamento e incluso algún nueve adicional. Si se hiciese antes se eliminarían menos ya que nio se tendrían en cuanta los números que se añaden. Entonces también podrías decirme si esa comprobación de cifras repetidas se hace antes o después de las otras.

Perdona por la insistencia en este tema, pero es que algo que no comprendo no lo puedo programar con la conciencia tranquila, me da miedo borrar teléfonos sin saber el motivo.

Gracias por la preocupación Valero, en el correo que envíe decía que no consideres los teléfonos que tienen 4444 (solo el numero 4 si se repite no los borres), pero los demás si porque hay algunas empresas que utilizan teléfonos con números repetidos como 14588888; 13122212; 145888899, 13860000 y yo no deseo llamar a empresas solo a personas naturales.

Bueno y en el caso de la hoja "REFORMATEOS" podría servirme pero solo si la información apareciera en el mismo libro "01 FORMATEOS" no en la hoja donde utilice la macro sino en la misma hoja donde se a creado la macro, es decir si yo tengo mi libro "YAWAR" y mi macro "01 FORMATEO" que la hoja "REFORMATEOS" aparezca en el libro "01 FORMATEOS" asi me evitaría estar creando una hoja con ese nombre cada vez que tenga que abrir mis libros a formatear como YAWAR1; WAYAR2; YAWAR3; ETC.

Saludos

Ho había pensado yo en que ejecutabas la macro en otros libros distintos, pero puede hacerse.

Entonces te mando la macro que escribe de los cambios en la hoja "Reformateos" del libro donde está la macro que se ejecuta.

He quitado que se borren los teléfonos con 4444. Y la comprobación de cifras seguidas se hace después de los otros formateos. Y está hecho lo de quitar teléfonos repetidos en la fila.

La macro va mucho más rapido que la que me mandaste, no obstante aún podría ser un poco más rápida si quitáramos la escritura de los cambios, para hacer eso habría que comentar las líneas que pone

Call Reformateo

En todo caso coméntalas, no las borres porque son muchas y si tuviera yo que hacer alguna otra cosa en esta macro las necesito para comprobar el funcionamiento de las operaciones.

Ahora ultimo los detalles y te mando la macro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas