¿Cómo buscar datos repetidos en una columna especifica y mostrarlos en una nueva hoja en orden según el número de repeticiones?

Para Elsa

¿Cómo hago una Macro que busque datos repetidos en una columna especificas (que se pueda modificar en la macro la columna deseada ej: columna A, B, C, D, etc.) y los muestre en una nueva hoja en según el número de repeticiones?

Si mi columna tiene 5 datos hacia abajo. Ejemplo:

Columna A

Gato

Gato

Perro

Oso

Oso

Gato=2

Oso=2

Perro=1

¿También me interesaría saber si se puede realizar para varias columnas al mismo tiempo?

1 Respuesta

Respuesta
2

En la macro que tomaste mi ejemplo, lo que se hace es copiar la col activa de una hoja y pegarla en otra hoja donde se dejan solamente los valores únicos, en col A.

Es decir que la macro debiera ejecutarse ya con una celda seleccionada de la col que deseas obtener registros únicos y también ya debe existir la Hoja 2.

Comentame qué detalle de esta macro no se te ejecuta como quisieras.

Con respecto a realizarlo para varias columnas al mismo tiempo aclara por favor si lo que necesitas es 'mover' varias col, es decir un rango, pero obtener los registros únicos de una sola... en ese caso podrías seguir el ejemplo anterior donde la macro considera la celda activa como col a trabajar o se puede solicitar mediante un inputbox.

Espero tus aclaraciones. O mejor enviame tu hoja y allí me indicas el ejemplo.

Te estoy enviando tu libro. Allí dejé la siguiente macro que se ejecutará con atajo de teclado y estando seleccionada la celda de fila 1 correspondiente a la col que necesites.

Se crea nueva hoja al final de las ya existentes.

Sub creaColSinDuplicados()
'x Elsamatilde
'atajo de teclado: CTRL h
'se ejecuta teniendo seleccionada la celda del título de la col elegida
rgo = Range(ActiveCell, ActiveCell.End(xlDown)).Address
'se copia el rango de la columna elegida
Range(rgo).Copy
'se crea una hoja al final y se pega allí el contenido
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Paste
'se autoajusta la columna... opcional
    Columns("A:A").EntireColumn.AutoFit
'se quitan los dupicados
    ActiveSheet.Range("A:A").RemoveDuplicates Columns:=1, Header:=xlYes
'se asigna como nombre de hoja el contenido de A1
'se controla posible error de nombre duplicado
Application.DisplayAlerts = False
On Error Resume Next
    ActiveSheet.Name = [A1]
    If Err.Number > 0 Then
        MsgBox "Ya existe este nombre de hoja... nombrala manualmente.", , "ERROR"
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas