Códigos repetidos

Hola nando a los tiempos, tengo esta duda que necesito que me ayudes a solucionarlo.
En la A y B tengo los códigos y la razón Social de varios clientes, pero estos códigos se repiten en varias ocasiones. Necesito una macro que me copie en la hoja 2 los códigos y la razón social pero sólo una vez, es decir ya no necesito los datos repetidos. Gracias por tu ayuda.

1 respuesta

Respuesta
1
Me pregunto si aceptarías la alternativa de usar Filtros avanzados. En general antes que desarrollar una macro, investigo si MS Excel cuenta con una función implícita para resolver eso. Seguramente será más rápido y seguro que una macro.
Este, salvo que me digas lo contrario, sería tu caso.
Si estás de acuerdo, estos son los pasos:
Asegúrate de que tienes títulos para cada columna en la tabla, y estos deben ser distintos entre sí. (= no duplicar títulos).
Donde quieres la nueva tabla, ingresa los encabezados de las columnas A y B (código y la razón Social) que son los que te interesa extraer. Estos deben estar EN LA MISMA HOJA donde está la base de datos. (Luego puede copiarla y llevrla a otra hoja)
Ahora selecciona sólo esas dos columnas (desde los títulos). Escoge "Filtro" del menú de "Datos" y, luego, "Filtro Avanzado..." del submenú que aparece. En el cuadro de diálogo, el campo de rango de Lista debe rellenarse ya con el rango que contiene tus datos de la base (si no, hazlo ahora). En el campo de rango de Criterio, no es necesario colocar nada.
Marca la opción "Copiar a otro lugar"
Luego, en el rango "Copiar a:" marca las celdas de títulos donde se generará la nueva tabla. Finalmente, como deseas sólo uno de cada uno, marca la opción "sólo registros únicos".
Presiona "Aceptar" y tendrás la base solicitada.
Una ventaja más, MS Excel "recuerda" esta rutina por si tienes que efectuarla otra vez.
Desde luego, también podrías grabar una macro para automatizar un poco más el proceso.
Espero que esto te satisfaga.
Pero dime si no.
Un beso!
Fernando
Hola Nando, probé lo que me dijiste pero no me es muy satisfactorio el resultado, creo que es mejor crear una macro para tener lo que necesito ya que a la macro podré añadirle ciertos datos "extras". Gracias por tu valiosísimo aporte y tu tiempo.
Este es el código que solicitaste. Ten en cuenta que la base a connsiderar debe estar ordenada por la columna donde harás el control de duplicados (esto no era necesario en la solución anterior ;)
Pega en un módulo nuevo este código:
Sub pegaUnicos()
Dim CodigoAct, LastCell
Sheets("Hoja2").Select
LastCell = Application.WorksheetFunction.CountA(Range(Cells(1, 1), Cells(5000, 1)))
Sheets("Hoja1").Select
CodigoAct = ""
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Value <> CodigoAct Then
CodigoAct = ActiveCell.Value
Range(ActiveCell, ActiveCell.Offset(0, 1)).Copy
Sheets("Hoja2").Select
Cells(LastCell + 1, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
LastCell = LastCell + 1
Sheets("Hoja1").Select
End If
ActiveCell.Offset(1).Select
Loop
Sheets("Hoja2").Select
ActiveCell.Select
Sheets("Hoja1").Select
ActiveCell.Select
End Sub
Cierra el editor y graba el archivo (especie de backup)
Luego selecciona la primer celda de la columna ordenada y ejecuta la macro.
Esta ubicará los pares de código-descripción en la columna A de la hoja B, considerando si en aquella ya hubiera datos. Agregará los nuevos pares luego del último que encuentre. Si no hubiese ninguno, empezará desde la fila 1.
Espeor que esto si te sea satisfactorio (es lo que pediste)...
Un beso!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas